xiaohuangnlxx 2022-04-02 12:55 采纳率: 66.7%
浏览 711
已结题

opencv裁剪之后出现报错'NoneType' object is not subscriptable

在图像处理的过程中读取图像之后并不会报错,但是裁剪之后会有'NoneType' object is not subscriptable的报错
问题相关代码,请勿粘贴截图
  1. import cv2
  2. import os
  3. def cv_show(name, img):
  4. cv2.imshow(name, img)
  5. cv2.waitKey(10000)
  6. cv2.destroyAllWindows()
  7. def orb_features(img):
  8. orb = cv2.ORB_create(
  9. 4000, # 特征点数目
  10. 1.2, # 金字塔层级之间的缩放比例
  11. 8, # 金字塔图像层级系数
  12. 31, # 边缘阈值
  13. 0, # 原图在金字塔中的层数
  14. 2, # 生成描述子时需要用的像素点数目
  15. cv2.ORB_HARRIS_SCORE, # 使用Harris方法评价特征点
  16. 31, # 生成描述子时关键点周围邻域的尺寸
  17. 20 # 计算FAST角点时像素值差值的阈值
  18. )
  19. kp = orb.detect(img, None)
  20. kp, des = orb.compute(img, kp)
  21. return kp, des
  22. if __name__ == '__main__':
  23. img_path = "D:/python/txsc"
  24. for img in range(648):
  25. img_name1 = f"{img}.jpg".rjust(10, "0")
  26. img_name2 = f"{img + 1}.jpg".rjust(10, "0")
  27. img_name1 = os.path.join(img_path, img_name1)
  28. img_name2 = os.path.join(img_path, img_name2)
  29. # 读取图片并截图
  30. img1 = cv2.imread(img_name1)[200:750, 450:1450]
  31. img2 = cv2.imread(img_name2)[200:750, 450:1450]
  32. print(img1)
  33. print(img2)
运行结果及报错内容

img

一开始以为是裁剪的大小大于了图片原本的大小,后来调出图片shape发现没有超过,打印查看与imshow都会出结果,但是这个报错不会消失
请问各位问题出在了哪里

展开全部

  • 写回答

3条回答 默认 最新

  • 关注

    cv2.imread(img_name2) 图片没有读取成功 ,返回值是None
    检查下img_name2地址的图片是否存在

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月6日
  • 已采纳回答 4月4日
  • 修改了问题 4月2日
  • 创建了问题 4月2日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部