本文由@星沉阁冰不语出品,转载请注明作者和出处。

文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/50708765

微博:http://weibo.com/xingchenbing 

安装ImageWatch之后,对于图片每一个点的像素值一目了然。由于之前对于像素点的操作老是出现各种问题,比如上次想要实现矩形图片的对角线切割就是一直没能成功。今天借助IamgeWatch正好探究下Mat数据结构中像素到底是怎么访问的。

我用了一种比较直观的方式来访问像素。即利用at函数:

 cout    << " image.at<Vec3b>(Point(3,2)) = " << image.at<Vec3b>(Point(3, 2)) << endl<< " image.at<Vec3b>(Point(2,3)) = " << image.at<Vec3b>(Point(2, 3)) << endl<< " image.at<Vec3b>(3,2) = " << image.at<Vec3b>(3, 2) << endl<< " image.at<Vec3b>(2,3) = " << image.at<Vec3b>(2, 3) << endl<< " image.at<Vec3b>(2,3)[0] = " << image.at<Vec3b>(2, 3)[0] << endl<< " image.at<Vec3b>(2,3)[1] = " << image.at<Vec3b>(2, 3)[1] << endl<< " image.at<Vec3b>(2,3)[2] = " << image.at<Vec3b>(2, 3)[2] << endl

分别提取(2,3)、(3,2)和Point(2,3)、Point(3,2)的像素值。同时分别提取了三通道的BGR值。

结果如下:

可以看到Point(3,2)和(2,3)的像素值相同,Point(2,3)和(3,2)的值相同。从右边的ImageWatch可以看出Point(2,3)才是符合我们常规思维的坐标点。(其实点是(0,0))。

所以image.at<Vec3b>(Point(x,y)) = image.at<Vec3b>(y,x) 。

继续往下看:

等等!BGR三通道分别是1,A,k是什么鬼?说好的[ 49,65,107]呢?搜索下Opencv的官方教程文档,发现下面这句话:

发现Vec3b原来是uchar类型数据,上网找了个ASCII码对照表一对比,果然【1,A,k】就对应着【49,65,107】。

但是如果像素值大于127的话,这种方式就不能输出像素值了,考虑到这只喵星人身上白色部分的像素值大于127,于是提取(400,300)点的像素值,果然什么也没有显示出来。

把他们转换成int型呢

     << " (int) image.at<Vec3b>(2,3)[0] = " << (int)image.at<Vec3b>(2, 3)[0] << endl<< " (int) image.at<Vec3b>(2,3)[1] = " << (int)image.at<Vec3b>(2, 3)[1] << endl<< " (int) image.at<Vec3b>(2,3)[2] = " << (int)image.at<Vec3b>(2, 3)[2] << endl

结果就真的可以了:

经过这一番探索,终于对像素的操作有了更深入的理解。上次没有完成的矩形对角线分割现在顿时觉得有了清晰的思路,那就是下一篇文章的内容了。

OpenCV实践之路——像素初探相关推荐

  1. OpenCV实践之路——人脸识别之一数据收集和预处理

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51386949 微博:http ...

  2. OpenCV实践之路——雅虎色情图片检测神经网络试用报告

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/52821497 微博:http ...

  3. OpenCV实践之路——人脸识别之三识别自己的脸

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51472330 微博:http ...

  4. OpenCV实践之路——人脸检测(C++/Python) 【转】

    转自:http://blog.csdn.net/xingchenbingbuyu/article/details/51105159 版权声明:本文为博主原创文章,转载请联系作者取得授权. 本文由@星沉 ...

  5. OpenCV实践之路——方形图片对角线切割

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/50547897 微博:http ...

  6. OpenCV实践之路——opencv玩数独之一九宫格轮廓提取与透视变换

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/50783585 微博:http ...

  7. OpenCV实践之路——使用imread()函数读取图片的六种正确姿势

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51375078 微博:http ...

  8. 小密圈:OpenCV实践之路

    最近发现一个很多意思的东西,小密圈.号称连接一千位铁杆粉丝,知识变现.据说小密圈可能是最好的微信公众号读者论坛.也做一个尝试,看有多少人愿意加入. 仍然是分享OpenCV实战的内容和资料,除了平时写的 ...

  9. OpenCV实践之路——Qt中用opencv提取和匹配SIFT特征点

    本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/50695399 微博:http ...

最新文章

  1. 数据格式设置表达式 ZT
  2. python小项目-python 小项目
  3. linux杀java线程,如何在Linux下找出大量占用CPU的java线程
  4. Python入门100题 | 第056题
  5. STM32F4 HAL库开发 -- STM32CubeMX
  6. 为什么Nginx的性能要比Apache高很多?
  7. C#通过FFmpeg获得视频文件参数
  8. 165体重_大家觉得作为一个身高165的女生多少斤体重算合适?
  9. Struts2中Action的属性接收参数
  10. 【华为云技术分享】【昇腾】【玩转Atlas200DK系列】基于Pycharm专业版构建开发板python开发运行环境
  11. ubuntu 安装ssh 服务
  12. 第三方登录 steam_如何在Steam中激活第三方游戏代码
  13. android开发案例1---拦截电话,拯救史迪仔,有序广播
  14. 计算机常见错误代码,电脑常见错误蓝屏代码汇总及解决方法
  15. scala的linearization
  16. java mifare_java – 使用SCL010获取Mifare Ultralight的UID
  17. Centos7 安装Vpp 及一些学习资料。
  18. BrowserSync 本地服务器的起用
  19. Python版本与Matlab版本的对应关系
  20. 卡迪夫大数据专业排名_2019QS排名出炉啦!看看卡迪夫大学那些世界前百强的学科...

热门文章

  1. 《操作系统》课程心得体会
  2. 二手android手机,买二手手机好不好?看完这篇你就明白了
  3. 手机上网功能开通 || 手机上网功能关闭
  4. 秦羽最后是鸿蒙之身吗,从主神归来的主角们
  5. 第三方Android 模拟器流畅速度快,适合开发人员(2)
  6. HP暗影精灵三win10下安装ubuntu16.04双系统(uefi安装)
  7. linux终端字体放大_微软Build:Windows 将附完整Linux内核,新命令行工具,开源六小时冲上GitHub第二...
  8. 关于U盘无法弹出的几种解决方法
  9. Leetcode_1697
  10. 单片机---HLK-W801开发环境搭建