免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 3020 | 回复: 8

请大神帮忙看下这个cv2.imread()函数矩阵报错的问题? [复制链接]

论坛徽章:
0
发表于 2018-09-14 18:38 |显示全部楼层
path=r'C:\Users\Administrator\Desktop\tmp1\pic\1.jpg'
image=Image.open(path)
(xsize,ysize)=image.size
image_array=cv2.imread(path)

for x in range(xsize):
    for y in range(ysize):
         print image_array[x,y]

这张图片的分辨率是4040*6343 , 执行的时候发现在4040这里报错了, 很奇怪我换张图片又没有报错.
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/WrokSpace/cheng_du/test1.py", line 48, in <module>
    print image_array[0,4041]
IndexError: index 4041 is out of bounds for axis 1 with size 4040

论坛徽章:
0
发表于 2018-09-15 11:41 |显示全部楼层
数组越界了,你把x,y打印出来, 你这种写法x>y的时候应该不会报错。或者你把图片发上来

论坛徽章:
0
发表于 2018-09-15 15:06 |显示全部楼层
回复 2# dahe_1984


2018-09-15_150459.jpg

论坛徽章:
0
发表于 2018-09-15 15:07 |显示全部楼层
回复 3# fu7100

大神帮忙看下 , 图片还没跑完呢就越界了不科学啊

论坛徽章:
0
发表于 2018-09-16 06:14 |显示全部楼层
         try:
            c=image_array[x,y]
         except ZeroDivisionError,e:
            print(x,y)
            print(e.message )

我的意思是try下,把x,y输出看看是什么值。   数组越界基本就是index从0开始还是从1开始

论坛徽章:
0
发表于 2018-09-17 11:47 |显示全部楼层
回复 5# dahe_1984

结果跟上面报错是一样的啊

论坛徽章:
0
发表于 2018-09-17 11:47 |显示全部楼层
回复 5# dahe_1984

2018-09-17_114609.png

论坛徽章:
0
发表于 2018-09-17 23:03 |显示全部楼层
你的数组索引是0~4039还是0~4040?

论坛徽章:
0
发表于 2018-09-19 21:14 |显示全部楼层
回复 8# dahe_1984


问题已经解决了, 是numpy矩阵表现图像和通过坐标系定义不同导致的, 吧x,y互换一下就可以了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

数据风云,十年变迁
DTCC 第十届中国数据库技术大会已启航!

2019年5月8日~5月10日,由IT168旗下ITPUB企业社区平台主办的第十届中国数据库技术大会(DTCC2019),将在北京隆重召开。大会将邀请百余位行业专家,就热点技术话题进行分享,是广大数据领域从业人士的又一次年度盛会和交流平台。与SACC2018类似,本届大会将采用“3+2”模式:3天传统技术演讲+2天深度主题培训。大会不仅提供超100场的主题演讲,还会提供连续2天的深度课程培训,深化数据领域的项目落地实践方案。
DTCC2019,一场值得期待的数据技术盛会,殷切地希望您报名参与!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP