9

at<>タイプ CV_8UC1 (8 ビットのシングル チャネル イメージ) の cv::Mat があり、次のように演算子を使用して要素にアクセスしたいと考えていますimage.at<char>(row, column)intただし、 :にキャストすると(int) image.at<char>(row, column)、一部の値が負になります。たとえば、255 は -1 になります。

これはばかげた質問かもしれませんが、なぜこれが起こるのか、エントリを に変換するより良い方法は何かわかりませんint

前もって感謝します!

4

2 に答える 2

25

要素が0 ~ 255 のunsigned charであることを指定する必要があります。指定しない場合は、-128 ~ 127 の char (signed) になります。キャストは次のようになります。

(int) image.at<uchar>(row,column);
于 2012-10-03T09:40:44.660 に答える
5

マトリックス型 CV_8 UC 1 は Unsigned Char を表します。

だから、あなたは書く必要があります

image.at<unsigned char>(row, column)
于 2012-10-03T09:08:48.030 に答える