opencv Mat.at
来源:互联网 发布:centos mount iso文件 编辑:程序博客网 时间:2024/06/05 09:45
opencv c++ mat获取像素及像素赋值
For accessing pixel's channel value :
for (int i = 0; i < image.cols; i++)
{
for (int j = 0; j < image.rows; j++)
{
Vec3b intensity = image.at<Vec3b>(j, i);
for(int k = 0; k < image.channels(); k++)
{
uchar col = intensity.val[k];
}
}
}
For changing a pixel value of a channel :
uchar pixValue;
for (int i = 0; i < image.cols; i++)
{
for (int j = 0; j < image.rows; j++)
{
Vec3b &intensity = image.at<Vec3b>(j, i);
for(int k = 0; k < image.channels(); k++)
{
// calculate pixValue
intensity.val[k] = pixValue;
}
}
}
注:附录:引用
http://www.cppblog.com/gtwdaizi/articles/38521.html
// image.at返回的是引用,将引用赋值到intensity Vec3b intensity = image.at<Vec3b>(j, i);//intensity是image.at返回的引用的另一个别名 Vec3b &intensity = image.at<Vec3b>(j, i);
C++返回引用类型
A& a(){ return *this;} 就生成了一个固定地址的指针,并把指针带给你
但A a() { return *this;}会生成一个临时对象变量,并把这个临时变量给你
这样就多了一步操作
当返回一个变量时,会产生拷贝。当返回一个引用时,不会发生拷贝,你可以将引用看作是一个变量的别名,就是其他的名字,引用和被引用的变量其实是一个东西,只是有了两个名字而已。
问题的关键是,当你想要返回一个引用而不是一个拷贝时,你要确保这个引用的有效性,比如:
int & fun() { int a; a=10; return a; }
这样是不行的,因为a会在fun退出时被销毁,这时返回的a的引用是无效的。
这种情况下,如果fun的返回类型不是int & 而是int就没有问题了。
指针的引用
GetNearestFontInTwips(CFont *&aFont, const TFontSpec &aFontSpec);
第一个参数aFont是一个指针, 前面加上*&表示指针的引用, 其实可以如下看待这个方式(CFont*) &aFont, 这就一目了然了.
- opencv Mat.at
- opencv学习笔记之Mat::at
- opencv学习笔记之Mat::at
- opencv中Mat格式的数据点访问at
- openCV坐标系与row&col的关系 (Mat::at(x,y)和Mat::at(Point(x, y))的区别)
- OpenCV Mat
- opencv-Mat
- Mat--opencv
- opencv---mat
- opencv Mat
- opencv mat
- OpenCV Mat
- opencv-mat
- opencv MAT
- opencv-Mat
- OpenCV: Mat
- OpenCV-----Mat
- opencv mat
- maven连接不可信仓库
- sin cos tan在前端的应用
- RxJava2-第二章 Scheduler(调度器)与线程控制
- spring的的AOP
- Spring构造器注入
- opencv Mat.at
- BZOJ P1196:[HNOI2006]公路修建问题
- mybatis xml 映射文件 sql include 的用法
- 五 Swift 3.0之 元祖
- iOS/Android 浏览器(h5)及微信中唤起本地APP
- Spring Cloud之架构
- 313. Super Ugly Number
- JAXB
- 统计学习方法笔记(3)——k近邻法与kd树