1
我想一个MATLAB代码翻译成C++ OpenCV的,它的阈值的RGB图像:红色值>阈值1和红/绿>阈值2和红色/蓝色>阈值3如何高效地使用opencv在RGB图像中执行复杂阈值?
的MATLAB代码是:
bw=(im(:,:,1)>=red_th&(im(:,:,1)./im(:,:,2))>=red_green_th&(im(:,:,1)./im(:,:,3))>=red_blue_th);
其中im(:,:,1), im(:,:,2)
和im(:,:,3)
分别是r,g,b值。
我发现matlab代码与使用“for cols and for rows”循环所有像素相比非常高效。因此,我想在opencv中找到类似的有效方法,而不是循环使用cols和rows。
我看了一些关于cv::threshold and inRange
的信息,但是看起来他们不能满足我的要求。
它的工作原理。非常感谢! –
很高兴帮助; D – Miki
可能您对该类型有一些问题。 Matlab中的矩阵通常是double类型的,而在OpenCV中它们可能是'uchar'类型。如果这是一个问题整数除法,你需要将OpenCV矩阵转换为前两倍 – Miki