2013-11-21 57 views
2

我是OpenCV的新手,我試圖從灰度圖像中獲取像素值。在OpenCV中獲取像素值

#include<opencv2\opencv.hpp> 
#include<opencv2\highgui\highgui.hpp> 
#include<opencv2\core\core.hpp> 
#include<iostream> 

using namespace cv; 

int main() 
{ 
    VideoCapture cap(1); 
    Mat image,gray_image; 
    cap>>image; 
    cvtColor(image,gray_image,CV_BGR2GRAY); 
    std::cout<<"Value: "<<gray_image.at<uchar>(0,0); 
    imshow("Window",gray_image); 
    waitKey(0); 
    return 0; 
} 

像素值顯示爲*或〜等我認爲它正在轉換爲ASCII值。我如何解決這個問題?

謝謝。

+0

可能重複(http://stackoverflow.com/questions/20092087/visualization-pixel-with-opencv-mat-at) – Bull

回答

4

嘗試輸出作爲整數

std::cout<<"Value: "<<static_cast<int>(gray_image.at<uchar>(0,0)); 
[可視化與opencv的墊像素的]的
1

您需要強制轉換的UCHAR可變印刷

像以前一樣爲int,

std::cout<<"Value: "<<(int)src.at<uchar>(0,0);