《Opencv入门》指针遍历

原创 2015年07月08日 20:31:03
#include <iostream> 
#include "opencv2/opencv.hpp" 

using namespace std;
using namespace cv;

int main(int argc, char* argv[])
{
	Mat grayim(600, 800, CV_8UC1);
	Mat colorim(600, 800, CV_8UC3);

	//遍历所有像素,并设置像素值 
	for (int i = 0; i < grayim.rows; ++i)
	{
		//获取第 i行首像素指针 
		uchar * p = grayim.ptr<uchar>(i);
		//对第i 行的每个像素(byte)操作 
		for (int j = 0; j < grayim.cols; ++j)
			p[j] = (i + j) % 255;
	}
	//遍历所有像素,并设置像素值 
	for (int i = 0; i < colorim.rows; ++i)
	{
		//获取第 i行首像素指针 
		Vec3b * p = colorim.ptr<Vec3b>(i);
		for (int j = 0; j < colorim.cols; ++j)
		{
			p[j][0] = i % 255; //Blue 
			p[j][1] = j % 255; //Green 
			p[j][2] = 0;     //Red 
		}
	}

	//显示结果 
	imshow("grayim", grayim);
	imshow("colorim", colorim);
	waitKey(0);

	return 0;
}

注意:

//获取第 i行首像素指针 
		uchar * p = grayim.ptr<uchar>(i);
ptr的使用!!!!

学习Opencv 2.4.9(二) ---操作像素

作者:咕唧咕唧liukun321来自:http://blog.csdn.net/liukun321本质上说一张图像就是由数值组成的矩阵。Opencv 2.x由 cv::Mat 这个数据结构来表示一张图...

OpenCV学习笔记(四十)——再谈OpenCV数据结构Mat详解

我记得开始接触OpenCV就是因为一个算法里面需要2维动态数组,那时候看core这部分也算是走马观花吧,随着使用的增多,对Mat这个结构越来越喜爱,也觉得有必要温故而知新,于是这次再看看Mat。 M...

OpenCV中矩阵类详解之一:Mat

Mat::eye 返回一个恒等指定大小和类型矩阵。 C++: static MatExpr Mat::eye(int rows, int cols, inttype) C++: static MatE...

OpenCV Mat数据类型指针ptr的使用

OpenCV Mat数据类型指针ptr的使用

OpenCV学习笔记(四十三)——存取像素值操作汇总core

在上一讲OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年里,对Mat内数据的各种读写操作进行了速度的比较,都是我自己想到的方法,感觉不够系统,这次整理了下思路,参考了文献...

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

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

OpenCV学习篇之五 使用指针遍历图像

程序功能: 对图像进行颜色缩减程序:// learn_colorReduce.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include #includ...

【学习OpenCV】高效遍历Mat

一般来说图像行与行之间往往存储是不连续的,但是有些图像可以是连续的,Mat提供了一个检测图像是否连续的函数isContinuous()。当图像连通时,我们就可以把图像完全展开,看成是一行。 unsig...

OpenCV学习之二: 使用指针遍历图像

图像矩阵是如何存储在内存之中的?

OpenCV学习笔记(1)——操作像素

一、存取像素 如果图像是单通道的
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《Opencv入门》指针遍历
举报原因:
原因补充:

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