2013-11-21 55 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);