Open xinsuinizhuan opened 4 years ago
理论上换别的应该可以。灰度图,前面声明不应该直接三通道;new了不管了可能内存泄露;彩色图可能数据排布对不上,检查下多通道的排布是不是一样的
理论上换别的应该可以。灰度图,前面声明不应该直接三通道;new了不管了可能内存泄露;彩色图可能数据排布对不上,检查下多通道的排布是不是一样的
这两个opencv的soble,怎么用SSE版的soble替换?
输入输出对得上直接换就好了。opencv本身也用SSE加速过,不知道你说的SSE版本快了多少?
输入输出对得上直接换就好了。opencv本身也用SSE加速过,不知道你说的SSE版本快了多少?
这个进行了两次soble是什么意思?都差不多一个数据量级的加速 soble SSE 加速看这里:https://www.cnblogs.com/Imageshop/p/7285564.html gaussblur SSE加速看这里:https://www.cnblogs.com/Imageshop/p/6376028.html
输入输出对得上直接换就好了。opencv本身也用SSE加速过,不知道你说的SSE版本快了多少?
这个进行了两次soble是什么意思?都差不多一个数据量级的加速 soble SSE 加速看这里:https://www.cnblogs.com/Imageshop/p/7285564.html gaussblur SSE加速看这里:https://www.cnblogs.com/Imageshop/p/6376028.html
但是替换了gaussblur后,什么都检测不到了。这是我整理好的soble和gaussblur算法 alg_speed.txt 试试看,看到底怎么回事,到底能不能替换。
大概看了下,这个是跟最原始的实现比,跟opencv比不一定有很大的加速,因为opencv也有SSE,还用到separatable filter。不用fusion想加速还是并行比较好。 至于能不能替换,可以先用一个简单的图像处理看看,算出来的样子一样才对
我找到了一些sse优化的soble和gaussblur算法,能替换里面的soble和gaussblur来进行加速不? alg_speed.txt 我尝试了替换了下,灰度图会崩溃,彩色图只替换了gaussblur,就什么都检测不到了。
static void quantizedOrientations(const Mat &src, Mat &magnitude, Mat &angle, float threshold) { //Mat smoothed; ////Compute horizontaland vertical image derivatives on all color channels separately //static const int KERNEL_SIZE = 7; ////For some reason cvSmooth / cv::GaussianBlur, cvSobel / cv::Sobel have different defaults for border handling... //GaussianBlur(src, smoothed, Size(KERNEL_SIZE, KERNEL_SIZE), 0, 0, BORDER_REPLICATE);
}