2015-02-17 196 views
3

對不起,這是我今天的第二個問題,但我相信有人知道如何回答我的問題。OpenCV - Java:inRange函數

我有我的形象mRgba,當我做到這一點:

Core.inRange(mRgba, B1, B2, mRgba); 

我有我所期望的結果是:我所有的RGBA圖像B1和B2之間的閾值處理。

現在,我想這樣做:

Mat roi = mRgba.submat(rect); 
Core.inRange(roi, B1, B2, roi); 

而且這不是我區矩形申請,我嘗試一切,已有3小時,我無法找到一個解決方案... 坦克你非常多,對不起,如果我不清楚,但我有一些英語問題...

+0

我接受C++代碼或任何東西,只是一個解釋... – Bidonjour 2015-02-17 22:11:35

回答

7

好吧,也許每個人都不在乎,但經過多次嘗試,我找到了答案。

Mat roi = new Mat(); 
roi = mRgba.submat(rect); 
Mat roiTmp = roi.clone(); 

Imgproc.cvtColor(roiTmp, roiTmp, Imgproc.COLOR_RGB2HSV); 

Core.inRange(roiTmp, B1, B2, roiTmp); 

Imgproc.cvtColor(roiTmp, roi, Imgproc.COLOR_GRAY2BGRA);