码迷,mamicode.com
首页 > 其他好文 > 详细

opencv2中访问像素的简单方法

时间:2017-06-05 12:33:06      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:style   name   end   简单   像素   ret   []   利用   define   

利用Mat的step[0],step[1]访问像素的行列,自定义一个宏CV_MAT_ELEM2(src,dtype,y,x),src是待访问的Mat,dtype是src的数据类型(int,float,char等),

访问像素位置是y行、x列。

宏定义如下:

#define CV_MAT_ELEM2(src,dtype,y,x) \

        (dtype*)(src.data+src.step[0]*y+src.step[1]*x)
演示代码如下所示:
#include <iostream>
#include <opencv2/opencv.hpp>
#define CV_MAT_ELEM2(src,dtype,y,x) \
        (dtype*)(src.data+src.step[0]*y+src.step[1]*x)
using namespace cv;
using namespace std;

int main()
{
    float a[]={1,2,3,
               4,5,6,
               7,8,9};
    Mat mat2=Mat(3,3,CV_32F,a);
    Mat mv[]={mat2,mat2,mat2};
    Mat pp;
    merge(mv,3,pp);
    float* em=CV_MAT_ELEM2(pp,float,2,2);
    cout<<em[0]<<","<<em[1]<<","<<em[2]<<endl;
    return 0;
}

 

opencv2中访问像素的简单方法

标签:style   name   end   简单   像素   ret   []   利用   define   

原文地址:http://www.cnblogs.com/phoenixdsg/p/6944205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!