2013-10-03 3 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 루프 안쪽으로 이동하십시오. 그렇다면 그것이 작동합니다.