У меня проблема со скоростью фильтра верхней шляпы. В бумаге транзакций IEEE время работы верхней шляпы, примененной к изображению с разрешением 320 × 256, оценивается в 0,0062 секунды с помощью программного обеспечения MATLAB на ПК с 8-ГБ-памятью и 4-ГГц процессором Intel i7. table_time я запускаю следующий код с OpenCV на ноутбуке с памятью 6 ГБ и 2,6-ГГц процессор Intel i5 для этого изображения с таким же разрешением: enter image description hereверхняя часть фильтра время работы фильтра
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(){
double t0 = (double)getTickCount();
Mat src,dst;
src=imread("E:/tree.jpg",0);
Mat element = getStructuringElement(MORPH_ELLIPSE,Size(15,15));
morphologyEx(src,dst,MORPH_TOPHAT,element,Point(-1,-1));
double elapsed=((double)getTickCount()-t0)/getTickFrequency();
cout<<elapsed<<"second"<<"\n";
return -1;}
Это занимает .05375 секунду. Несмотря на то, что C++ и openCV бывают быстрыми, но почему время работы верха составляет 6 мс в matlab и 54 мс в opencv. как я мог ускорить его?
Первый, почему вы включаете imread imread в времени пройти какое? Во-вторых, если вы используете opencl, то когда-то код компилируется во время выполнения при первом вызове, проверяемом ellpased time для второго вызова. Поскольку strukmen сказал check getbuild информацию, чтобы определить, какую версию opencv вы используете – LBerger
Как уже упоминалось, вы измерили время чтения + время фильтрации. Как общий комментарий, время [benchmarking] (http://mattwarren.org/2014/09/19/the-art-of-benchmarking/) сложное, особенно с языками, использующими механизм высокого уровня, например, время сбор. Практически справедливое сравнение состоит в том, чтобы выполнить две программы (которые дают одинаковый результат) на одном компьютере и, кроме того, используя правильные эталонные методы для решения специфики языка. В общем, язык не имеет значения, только реализация. Это должно касаться того, почему. – Catree