2015-07-14 5 views
0

Добрый деньopenv HSV is soo noisy

Я пытаюсь отфильтровать видео, вычитая некоторые цвета в указанном диапазоне. , но в то время как записанное изображение все еще или не изменено, но отфильтрованное изображение HSV выглядит встряхивающим и нестабильным. Это встряска или нестабильность вызывают проблемы с лотом в моей обработке. есть ли способ, что я могу фильтровать изображение стабильно

это образец код моего фильтра ... часть кода

while (1) 
    { 
     //first frame read 
     cap.read(origonal1); 
     morphOps(origonal1); 
     cvtColor(origonal1, HSV1, COLOR_BGR2HSV); 

     inRange(HSV1, Scalar(0, 129,173), Scalar(26,212, 255), thresholdImage1); 



     waitKey(36); 

     //second image read and convert it to HSV 
     cap.read(origonal2); 
     morphOps(origonal2); 
     cvtColor(origonal2, HSV2, COLOR_BGR2HSV); 

     inRange(HSV2, Scalar(28, 89, 87), Scalar(93, 255, 255),thresholdImage2); 

     morphOps(thresholdImage1); 
     morphOps(thresholdImage2); 
//create a mask so that i only detect motion of certain color range and don't 
//care about other colors motion detection 
     maskImage = thresholdImage1 | thresholdImage2; 

     //make the difference between images 

     absdiff(thresholdImage1,thresholdImage2,imageDifference); 

     imageDifference = imageDifference&maskImage; 
     morphOps(imageDifference); 
     imshow("threshold Image", imageDifference); 
     //search for movement now update the origonal image 
     searchForMovement(thresholdImage1, origonal1); 
     imshow("origonal", origonal1); 
     imshow("HSV", HSV1); 
     imshow("threshold1", thresholdImage1); 
     imshow("threshold2", thresholdImage2); 
     //wait for a while give a break to the processor 
     //waitKey(1000); 

    } 

enter image description here enter image description here this is sample of first input image .. let's say want to filter orange paperthis is example of second input Спасибо заранее.

+0

Вы можете разместить образцы изображений, чтобы показать это поведение? и почтовый код, как вы фильтруете/конвертируете ваши изображения hsv. – Micka

+0

вы можете видеть, что детали, которые вы запросили, скажите мне, если что-то еще нужно –

+0

, вероятно, отображение изображения hsv в качестве изображения bgr не является интуитивным, так как красный цвет разделяется между началом и концом первого канал. можете ли вы разместить 2 входных изображения, чтобы я мог посмотреть на значения? – Micka

ответ

0

попробовать эту функцию

fastNlMeansDenoisingColored(frame, frame_result, 3, 3, 7, 21); 

это слишком медленно, но хорошо попробовать.