1.
初始化矩阵:
Mat depthShow1(Size(640, 480), CV_8UC1, Scalar(255)); //大小640*480 单通道灰度图像,灰度大小为255
2.
设置ROI区域(图像中自己感兴趣的矩形区域):
Rect roi;
roi.x=50;
roi.y=50;
roi.width=100;
roi.height=100; //分别设置roi的坐标(左上角)和大小
3.
图像大小变换
假设depthRaw是16位的,而depthShow是8位的,想要共享数据就需要把大小进行变换,DEPTH_SCALE_FACTOR=255.0/ 4096.0
depthRaw.convertTo(depthShow, CV_8U, DEPTH_SCALE_FACTOR);
4.
设置矩阵中某一点的像素值
depthShow.at<uchar>(0,0) = 0;//设置depthShow矩阵的(0,0) 点的灰度值为0
5.
获取矩阵中某点的像素值
int get_pixel(Mat & img, Point pt)
{
int width = img.cols; //图片宽度
int height = img.rows;
uchar* ptr = (uchar*)img.data + pt.y * width; //获得灰度值数据指针
int intensity = ptr[pt.x];
return intensity;
}
如函数所示,对其中参数有要求,分别是矩阵和坐标点的格式。
1.
Rect roi1, roi2; 初始化矩阵():
Mat depthShow1(Size(640, 480), CV_8UC1, Scalar(255)); //大小640*480 单通道灰度图像,灰度大小为255
2.
设置ROI区域(图像中自己感兴趣的矩形区域):
Rect roi;
roi.x=50;
roi.y=50;
roi.width=100;
roi.height=100; //分别设置roi的坐标(左上角)和大小
3.
图像大小变换
假设depthRaw是16位的,而depthShow是8位的,想要共享数据就需要把大小进行变换,DEPTH_SCALE_FACTOR=255.0/ 4096.0
depthRaw.convertTo(depthShow, CV_8U, DEPTH_SCALE_FACTOR);
4.
设置矩阵中某一点的像素值
depthShow.at<uchar>(0,0) = 0;//设置depthShow矩阵的(0,0) 点的灰度值为0
5.
获取矩阵中某点的像素值
int get_pixel(Mat & img, Point pt) { int width = img.cols; //图片宽度 int height = img.rows; uchar* ptr = (uchar*)img.data + pt.y * width; //获得灰度值数据指针 int intensity = ptr[pt.x]; return intensity; }
如函数所示,对其中参数有要求,分别是矩阵和坐标点的格式。