19,468
社区成员
发帖
与我相关
我的任务
分享
static void get_color(cv::Mat &image, cv::Point point, cv::Scalar &color)
{
int offset;
unsigned char *ptr = (uchar*)image.data;
assert(image.rows>point.x);
assert(image.cols>point.y);
offset = 3 * (point.x * image.cols + point.y);
color.val[0] = ptr[offset];
color.val[1] = ptr[offset + 1];
color.val[2] = ptr[offset + 2];
}
for (int i = 0; i < matData.rows; i++)
{
const uchar* pixelPtr = matData.ptr<uchar>(i);
for (int j = 0; j < matData.cols*matData.channels(); j++)
{
int data = pixelPtr[j];
outFile << data << "\t";
}
outFile << std::endl;
}
#include <stdio.h>
#include <string.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv) {
char *imgName="bw.bmp";
Mat BW = imread(imgName);
int value1 = BW.at<uchar>(181, 41);
int value2 = BW.at<uchar>(191, 51);
printf("value1,value2:%d,%d\n",value1,value2);
getchar();
return 0;
}
//value1,value2:0,255
int value = BW.at<uchar>(191, 51);//Note - y:191,x:51 value in (0,255)