《opencv 入门》第三章笔记(用at进行遍历)

原创 2015年07月08日 18:44:53
#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(){

	Mat image(600,800,CV_8UC1);
	Mat image2(600,800,CV_8UC3);
	for (int i = 0; i < image.rows; ++i)
	{
		/*uchar * p = image.ptr<uchar>(i);*/
		for (int j = 0; j < image.cols;++j){
		
			/*p[j] = (i + j) % 255;*/

			image.at<uchar>(i,j) = 0;

		}
	}

	for (int i = 0; i < image2.rows; ++i){
		for (int j = 0; j < image2.cols; ++j){
			image2.at<Vec3b>(i, j)[0] = 255;
			image2.at<Vec3b>(i, j)[1] = 255;
			image2.at<Vec3b>(i, j)[2] = 255;

		
		}
	
	
	}

	imshow("image",image);
	imshow("image2", image2);
	waitKey(0);

}



注意:for循环里面,必须先是rows,然后cols,否则会出现错误,而在for里面的,外层循环和内层循环,rows和cols谁在里在外,则无所谓。

若image.at<uchar>(cols,rows),则报错:


<img src="http://img.blog.csdn.net/20150708185201436?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="http://img.blog.csdn.net/20150708185240670?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
</pre><pre name="code" class="cpp">

但是,遍历图像的时候,不推荐使用at()函数,因为使用这个函数的效率不高,虽然代码可读性高。





opencv像素基本操作及图像遍历at

矩阵元素的表达: 对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32F32F 等;这些类型可以直接用 uchar 、short 、float等 C/C++语...
  • xuhang0910
  • xuhang0910
  • 2015年07月25日 17:53
  • 4640

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

本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用性。...
  • bendanban
  • bendanban
  • 2014年06月14日 11:45
  • 35734

opencv学习笔记:一些函数、类的使用方法

sprintf函数功能 把格式化的数据写入某个字符串缓冲区。 1.头文件 stdio.h2.原型int sprintf( char *buffer, const char *format, [ ar...
  • mikedadong
  • mikedadong
  • 2016年03月24日 08:55
  • 2861

opencv学习笔记之Mat::at

发现Mat类中的at方法对于获取某点的
  • u012915829
  • u012915829
  • 2014年07月29日 14:33
  • 6549

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

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

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

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

Opencv中用at<格式> 与用ptr<格式> 的不同

例子和笔记: 例子来自《Opencv computer vision application programming cookbook》 Mat M(200, 200, CV_64F);for(...
  • AnMe90
  • AnMe90
  • 2015年11月18日 20:49
  • 1616

opencv像素基本操作及图像遍历at

矩阵元素的表达: 对于单通道图像,其元素类型一般为 8U (即 8位无符号整数),当然也可以 是 16S 、32F32F 等;这些类型可以直接用 uchar 、short 、float等 C/C++语...
  • xuhang0910
  • xuhang0910
  • 2015年07月25日 17:53
  • 4640

【OpenCV学习笔记】【函数学习】十(常用的OpenCV函数汇总说明)

1、cvLoadImage:将图像文件加载至内存; 2、cvNamedWindow:在屏幕上创建一个窗口; 3、cvShowImage:在一个已创建好的窗口中显示图像; 4、cvWaitKey:...
  • u013035197
  • u013035197
  • 2014年02月24日 19:38
  • 715

opencv基本绘图函数--点,线,矩形,圆等

opencv提供的一些绘图函数,来简单的绘制一个简易的图形,包括线段、矩形、椭圆、多边形等。 1.线段 opencv提供了line()函数来对直线的绘制。其原型如下: CV_EXPORTS_W vo...
  • piaoxuezhong
  • piaoxuezhong
  • 2017年01月13日 21:28
  • 3438
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《opencv 入门》第三章笔记(用at进行遍历)
举报原因:
原因补充:

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