1

OpenCV 2.3.1(c ++ api)を使用していますが、カラー画像のピクセル値を取得しようとすると、値の数値ではなく、非常に奇妙な結果が得られます。出力は次のようになります。など。たとえば、コードは次のとおりです。

cv::Mat inputImage = cv::imread("Picture1.jpg");
std::cout << inputImage.at<cv::Vec3b>(x,y)[0] << std::endl; //print B component

ここで、xとyはマウスコールバック関数からの座標です。タイプが間違っていると思いますが、Vec3bの代わりに他に何を使用できるかわかりますか?

4

2 に答える 2

1

http://opencv.willowgarage.com/documentation/cpp/basic_structures.html を確認してください

OpenCVのVec3bはtypedef Vec<uchar, 3> Vec3b;. したがって、cout プロセスで整数にキャストする必要があると思います。

何かのようなものstd::cout << (int) inputImage.at<cv::Vec3b>(x,y)[0] << std::endl; //print B component

于 2012-09-17T14:56:21.487 に答える