opencv Mat.at
2024-08-30 03:06:50
opencv c++ mat获取像素及像素赋值
For accessing pixel's channel value :
for (int i = ; i < image.cols; i++) {
for (int j = ; j < image.rows; j++) {
Vec3b intensity = image.at<Vec3b>(j, i);
for(int k = ; k < image.channels(); k++) {
uchar col = intensity.val[k];
}
}
}
For changing a pixel value of a channel :
uchar pixValue;
for (int i = ; i < image.cols; i++) {
for (int j = ; j < image.rows; j++) {
Vec3b &intensity = image.at<Vec3b>(j, i);
for(int k = ; k < image.channels(); k++) {
// calculate pixValue
intensity.val[k] = pixValue;
}
}
}
附录:引用
http://www.cppblog.com/gtwdaizi/articles/38521.html
C++返回引用类型 指针的引用
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, 这就一目了然了.
// image.at返回的是引用,将引用赋值到intensity
Vec3b intensity = image.at<Vec3b>(j, i); //intensity是image.at返回的引用的另一个别名
Vec3b &intensity = image.at<Vec3b>(j, i);
最新文章
- POJ 1754 Splay
- 教你如何做好SEO优化中的前端优化
- poj1942 Paths on a Grid
- http://blog.csdn.net/luxiaoyu_sdc/article/details/7333024
- oracle PL/SQL(procedure language/SQL)程序设计之游标cursors
- Cookie与Session详解
- HTML中的<;select>;标签如何设置默认选中的选项
- 如何计算ModBus超时时间?
- dirname(__FILE__) 的使用总结
- jquery1.7.2的源码分析(五)$.support
- 动态加载Ribbon功能区
- SQL Server索引进阶:第五级,包含列
- Brackets + Sass 学习心得
- PAT乙级练习1001
- 201521123073 《Java程序设计》第13周学习总结
- Mac上如何完美的转换epub至mobi供kindle观看
- HP 1010、 1020、 1022 、M1005激光打印机内部无卡纸,但机器仍提示卡纸?
- Linux 下查看我们的不速之客
- SQL 给字符串补0
- 并发测试 JavaDemo