2013-09-09 4 views
0

Я использую Visual Basic 2010 Express, и OpenCV в C++, и в то время как эта линия уже ограничивает свой цвет, чтобы отслеживать в пороговом окне,Как заставить окно с порогом работать только на половину моего изображения?

inRange(HSV,Scalar(0,1,170),Scalar(196,137,256),thresholdL); 

Я пытаюсь выяснить, как же сказать «только шоу пиксели (я не знаю правильной терминологии для него), которые лежат где-то от 320 до 640 по оси x в этом пороговом окне. '

У меня есть переменная, которую я использую, чтобы проверить положение х, называется

int xPos; 

, но я не уверен, как сделать это, и воронка информацию в моем пороговым окне. Могу ли я изменить отображаемую строку? есть ли функция для этого, которую я просто не нашел и могу вставить под ней? Должен ли я создать новый класс или что-то еще?

Заранее спасибо.

ответ

1

Если вы хотите работать на какой-то определенной части изображения OpenCV ROI может помочь вам

Вы можете иметь что-то вроде

Mat HSV; //your source image for inrange 
Mat thresholdL//destination image 
int xPos= x_starting_point; 
int yPos=HSV.rows 
width=HSV.cols-xPos; 
height=HSV.rows; 

cv::Rect roi(xPos, yPos, width, height); // Your ROI rectangle 
//Set image ROI 
cv::Mat image_roi = HSV(roi);// note: this assignment does not copy data,HSV and image_roi now share data 
//Perform your operation 
inRange(image_roi,Scalar(0,1,170),Scalar(196,137,256),thresholdL); 

// Now dislpay 
imshow("out",HSV); 

Надежда это полезно для вас ...

+0

Ах хорошо Благодаря вам, я получил работу. Кажется, что у меня были проблемы, потому что мои ROI были просчитаны как один пиксель из исходного окна, и в результате он продолжал сбой. Я скорректировал числа, и это работает как шарм. Благодаря! –