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