2013-03-16 115 views
-1

我希望在openCV中訪問和顯示圖像的元素,我使用行列索引訪問各個元素,並嘗試在控制檯上以整數形式顯示它們,這裏是我的代碼:在OpenCV中訪問圖像的元素

  int v=0; 
      IplImage* img1 = cvLoadImage("image3.jpg",0); 
      Mat img; 

      for(int i = 0; i < img.rows; i++) 
      { 
       for(int j = 0; j < img.cols; j++) 
      { 
       v=img.at<uchar>(i,j); 

         cout<<"Value"<<" "<<v; 
      } 
      cout<<endl; 
      } 
      return 0; 

,但我得到一個空白的控制檯... 我要去哪裏撥錯???

+0

IMG未初始化 – 2013-03-16 06:52:07

回答

0

您將圖像加載到img1中,並試圖訪問沒有存儲數據的img元素。因此img.rowsimg.cols都是0,你什麼也得不到。

+0

Oooooooooops,我的壞:)@升級Froyo和@Bibek蘇貝迪 – 2013-03-16 06:55:45

+0

其實OpenCV中從來沒有給這樣的錯誤! – 2013-03-16 06:56:10

+1

這不是語法錯誤其邏輯錯誤,所以OpenCV不會顯示錯誤 – 2013-03-16 06:58:11

0

試試這個

Mat img = imread("image3.jpg"); 

在程序IMG是初始化。所以,你得到了空白屏幕

0

昨天我做了這樣的事情:

IplImage* img = cvLoadImage("image3.jpg", 0); 
for(int i = 0; i < img->height; i++) 
{ 
    //ptr - pointer to the first element of each row 
    char* ptr = (char*) (img->imageData + i*img->widthStep); 

    for(int j = 0; j < img->width; j++) 
    { 
     char v = (char) ptr[j]; 
     cout<< "Value" << " " << v; 
    } 
    cout << endl; 
}