2013-11-21 3 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

возможно дубликат [Visualization пикселя с OpenCV ковриком] (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)); 
1

Вы должны типаж вашего Uchar переменной INT перед печатью

как,

std::cout<<"Value: "<<(int)src.at<uchar>(0,0); 
Смежные вопросы