Opencv利用Mat访问像素值

如果是采用Mat形式存储,想要访问灰度图像的灰度值,可以采用如下方法:

如果是彩色图像,采用如下方法:

说明:

其中gray_value中存放灰度值,image是读入的图像,i表示行,j表示列;

color_value中存放彩色像素值,iamge是读入的图像,i表示行,j表示列,k表示通道,即R、G、B,取值范围为2、1、0.

时间: 2024-08-01 15:23:48

Opencv利用Mat访问像素值的相关文章

opencv 3.1.0 访问像素值的三种方法(C++)

三种方法分别问: 指针访问:void colorReduce_ptr(cv::Mat &inputImage, cv::Mat &outputImage, int div); 迭代器访问:void colorReduce_iterator(cv::Mat &inputImage, cv::Mat &outputImage, int div); 动态地址计算:void colorReduce_at(cv::Mat &inputImage, cv::Mat &o

《OpenCV:访问Mat图像中每个像素值》

图像容器Mat 还是先看Mat的存储形式.Mat和Matlab里的数组格式有点像,但一般是二维向量,如果是灰度图,一般存放<uchar>类型:如果是RGB彩色图,存放<Vec3b>类型. 单通道灰度图数据存放格式: 多通道的图像中,每列并列存放通道数量的子列,如RGB三通道彩色图: 注意通道的顺序反转了:BGR.通常情况内存足够大的话图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很大方便.可以用 isContinuous()函数来判断图像

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

欢迎转载,尊重原创,所以转载请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用性. 一.预备设置 本文假设你已经正确配置了OpenCV的环境,为方便大家实验,在文中也给出了编译源程序的Makefile,其内容如代码段1所示. 采用如代码段2所示的计时函数,这段代码你可以在我之前的博文中找到,abtic()

怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图?

  分类: OpenCV [Q1]怎么样用opencv将彩色图片转化成像素值只有0和255的灰度图? 进行灰度化,IplImage* pImg = cvLoadImage( "C:\\1.bmp", 0 ); 这样图像已经灰度化,然后调用cvThreshold(image, image, 125, 255, CV_THRESH_BINARY); 就可以了,125那里是你所用的阈值,这就是最简单的二值化,你要用ostu,或者别的高级一点的,就要自己写函数了   // Truncate v

利用matlab提取并分割RGB图像中的某一个已知像素值的图像

已知一副RGB图像中的的像素值,利用matlab将其分割出来并以二进制图像形式显示: %extract.m clear all; I=imread('new_original.png'); figure,imshow(I),title('Original Image'); bw=im2bw(I,0.3); %figure,imshow(bw),title('Gray Image'); rgb=[252,2,4]; img=extract_rgb(I,rgb); figure,imshow(im2

OpenCV——颜色缩减、计时函数、访问像素

1 //颜色空间缩减 2 //src:源图片 3 //dst:目标图片 4 //divideWith:缩减宽度 5 void ColorSpaceReduction(Mat src,int divideWith,Mat& dst) 6 { 7 //创建查询用的表 8 uchar table[256]; 9 for (int i = 0; i < 256; ++i) 10 table[i] = divideWith * (i / divideWith); 11 //创建mat型用于LUT函数查

OpenCV获取图片所有对应坐标中的像素值

获取图片所有对应坐标中的像素值.直接上代码了 #include <iostream> #include "cv.h" #include <highgui.h> #include<fstream> using namespace std; int main() { IplImage *img = cvLoadImage("C:\\Users\\Sunstarisme\\Desktop\\Lemon\\All Frames\\2.bmp&quo

opencv中Mat类型数据操作与遍历

Mat作为opencv中一种数据类型常常用来存储图像,相对与以前的IplImgae类型来说,Mat类型省去了人工的对内存的分配与释放,转而自动分配释放.Mat Class主要包括两部个数据部分:一个是matrix header(包括matrix的大小尺寸,储存方法,储存地址等等..),另一个是指向存储像素值的矩阵的指针. Opencv中对Mat的复制分为两种, Mat A, C; // creates just the header parts A = imread(argv[1], CV_LO

opencv2中访问像素的简单方法

利用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> #inclu