opencv 手势识别杂乱知识点

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;
}

如函数所示,对其中参数有要求,分别是矩阵和坐标点的格式。

猜你喜欢

转载自blog.csdn.net/JH_233/article/details/54098381
今日推荐