栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

opencv访问某一坐标的像素不正确(踩坑)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

opencv访问某一坐标的像素不正确(踩坑)

今天做项目时,需要去访问一张二值图某一坐标点的问题,和往常一样是使用int tmp = Mat.at(i, j);
但是!经过对比,竟然拿到的像素是错的(经过ps对比之后)

经过多次查找资料
竟然!
官网给出了说明(官网)

In order to get pixel intensity value, you have to know the type of an image and the number of channels. Here is an example for a single channel grey scale image (type 8UC1) and pixel coordinates x and y:

intensity.val[0] contains a value from 0 to 255. Note the ordering of x and y. Since in OpenCV images are represented by the same structure as matrices, we use the same convention for both cases - the 0-based row index (or y-coordinate) goes first and the 0-based column index (or x-coordinate) follows it. Alternatively, you can use the following notation:

所以
Mat.at(i, j) 其实访问的是(j, i)点;
一定要注意顺序
Mat.at(Point(i, j)) 访问的才是(i, j)点

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号