2015-02-17 2 views
3

Прошу прощения, это мой второй вопрос сегодня, но я уверен, что кто-то знает, как ответить на мой вопрос.OpenCV - Java: inRange function

У меня есть образ mRgba и когда я это сделать:

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

У меня есть результат, что я ожидал: все мой RGBA изображения порогов между B1 и B2.

Теперь я хочу, чтобы это сделать:

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

И это не распространяется на моей площади прямоугольника, я стараюсь все так 3 часа, я не могу найти решение ... Tank вы очень много, и извините, если я не понимаю, но у меня есть некоторые проблемы с английским ...

+0

Я принимаю код C++ или что-то еще, просто объяснение ... – Bidonjour

ответ

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); 
Смежные вопросы