opencv 取Mat元素的值

原创 2016年08月30日 10:50:04
获取通道channels=1,Mat元素类型为CV_32SC1的元素的值

1)使用ptr指针

mat.ptr<uchar>(i)+j) 形式
注意:
(1)元素类型是什么类型就用什么类型的指针,如CV_32SC1为32位有符号1通道矩阵,用uchar*指针,CV_32FC1为32位浮点单精度1通道矩阵,使用float*指针。

#include<cv.h>
#include<highgui.h>
#include<stdio.h>
using namespace cv;
using namespace std;
int main()
{
    Mat mat(5, 5, CV_32SC1,1);//新建一个初始化值为1的Mat矩阵
    //cout << mat;//使用cout能直接输出矩阵的值
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            printf("%d ",*(uchar*)(mat.ptr<uchar>(i)+j));

        }
    }

    return 0;
}

2)直接使用指针

注意:
(1)mat.step[0]为每一行所占字节数
(2)mat.step[1]每个元素所占字节数

#include<cv.h>
#include<highgui.h>
#include<stdio.h>
using namespace cv;
using namespace std;
int main()
{
    Mat mat(5, 5, CV_32SC1,1);//新建一个初始化值为1的Mat矩阵
    //cout << mat;//使用cout能直接输出矩阵的值

    printf("mat.step[0]=%d\n", mat.step[0]);//每一行所占字节数目
    printf("mat.step[1]=%d\n", mat.step[1]);//每个元素所占字节数
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            int elmValue = *(uchar*)(mat.data + mat.step[0] * i + mat.step[1] * j);
            printf("%d ", elmValue); 

        }
        printf("\n");
    }

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

【OpenCV】访问Mat图像中每个像素的值

今天百度搜资料还搜到了自己的。。。《访问图像中每个像素的值》,这是之前写的了,用的也是2.0的风格IplImage*格式,不太适用后来Mat的格式,特此重写一篇。 以下例子源自《The OpenCV...

【OpenCV】访问Mat中每个像素的值(新)

在《OpenCV 2 Computer Vision Application Programming Cookbook》看到的例子,非常不错,算是对之前的文章的回顾和补充。Color Reduce还是...

Opencv中Mat中元素的值读取方法总结

1、利用 at 函数读取 (1)单通道图像读取方式 Mat img1 = imread(filename,IMREAD_GRAYSCALE);      for( size_t nr...

Opencv 中 Mat中元素的值读取方法总结

1、利用 at 函数读取 (1)单通道图像读取方式 Mat img1 = imread(filename,IMREAD_GRAYSCALE);      for( size_t nr...

OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析

本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用性。...

opencv2.x新数据结构cv::Mat访问元素的方法

opencv2.0以后c++接口的API函数成为一种趋势,常用的IplImage与cvMat数据结构也淡出,新数据结构cv::Mat成为新宠。目前国内,新数据结构cv::Mat的资料还是比较少的。新数...

【学习OpenCV】Mat::data指针

这是一个很简单的问题,但是如果粗心大意写错了i和j,将会造成数据出错。 为什么要用指针访问Mat?在Release模式下的at方法其实效率跟指针是一样的,编码时没要为了效率牺牲可读性而使用指针。但有一...

OpenCV从Mat中提取某些行或列

Mat的rowRange和colRange可以获取某些范围内行或列的指针: Mat::rowRange Creates a matrix header for the specif...

OpenCV深入学习(4)--Mat元素的获取方法

以前也写过一篇关于获取cv::Mat矩阵元素的方法的文章,没有仔细研究,最近仔细总结了一下,废话少说直接上代码: #include #include #include #include ...
  • ljbsdu
  • ljbsdu
  • 2012年03月21日 22:34
  • 6120

opencv mat元素的遍历

转自点击打开链接 我们在实际应用中对图像进行的操作,往往并不是将图像作为一个整体进行操作,而是对图像中的所有点或特殊点进行运算,所以遍历图像就显得很重要,如何高效的遍历图像是一个很值得探讨的问题...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:opencv 取Mat元素的值
举报原因:
原因补充:

(最多只允许输入30个字)