2013-10-03 81 views
0

我試過這段代碼。 540是盒子的最左邊x值,3是盒子的最左邊y值,262-寬度,23-我要計算白色/黑色像素的比率的區域的高度。我真正想要做的是檢測特定區域中白色/黑色像素比例的數量。我已經計算出每個單元(我將要指定的區域)的座標,並嘗試使用此代碼。但計算錯誤。找到特定區域中的白色/黑色像素javacv

我可以請有一個想法,這個問題請..

我真的堅持在這裏與我的最後一年的項目。

 CvSize cvSize = cvSize(img.width(), img.height()); 

    IplImage image = cvCreateImage(cvSize, IPL_DEPTH_8U, 1); 
    IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3); 

    cvCvtColor(image2, image, CV_RGB2GRAY); 
    cvSetImageROI(image2, cvRect(540,3,262,23)); 
    //IplImage image2 = cvCreateImage(cvSize, IPL_DEPTH_8U, 3); 

    // 
    //cvCvtColor(arg0, arg1, arg2) 
    // cvCvtColor(image2, image, CV_RGB2GRAY);  
    //cvThreshold(image, image, 128, 255, CV_THRESH_BINARY); 





    CvLineIterator iterator = new CvLineIterator(); 
    double sum = 0, green_sum = 0, red_sum = 0; 
    CvPoint p2 = new CvPoint(802,3); 
    CvPoint p1 = new CvPoint(540,26); 

    int lineCount = cvInitLineIterator(image2, p1, p2, iterator, 8, 0); 



     for (int i = 0; i < lineCount; i++) { 
      sum += iterator.ptr().get() & 0xFF; 
     } 
      System.out.println("sum................"+sum);   
     CV_NEXT_LINE_POINT(iterator); 

    } 


} 

它給結果作爲總和................ 0.0

我已經真正套牢this..can請你給這個任何解決方案問題請

回答

0

for循環內移動CV_NEXT_LINE_POINT(iterator);行。那麼它應該工作。

相關問題