opencv中cv2.imread()的斜杠问题

#如果是绝对路径使用一个反斜杠就会报错
img_path='D:\python_work\objectDetection\YOLOv4\pytorch-YOLOv4\myData\JPEGImages\000247.jpg'
img = cv2.imread(img_path)
print(img)
cv2.imshow('img',img)
cv2.waitKey(0)
img1= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print("================")
print(img1)

显示错误

 cv2.imshow('img',img)
cv2.error: OpenCV(4.5.2) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-1bq9o88m\opencv\modules\highgui\src\window.cpp:404: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'


 原因:路径找不到,输出字符串时,如果想输出一个换行,那就要加上'\n'这个标志,类似的,输出一个TAB,就加上'\t',也就是说,反斜杠("\")这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号('"'),就需要输入'\"',这样才会将包含了双引号的字符串正确的写入内存中。那么如果想输入一个反斜杠呢?很简单,只要敲'\\'就可以了。

如果"C:\Windows\System"这个路径字符串交给编译器编译,实际写入内存的字符串并没有包含反斜杠"\",甚至紧跟在反斜杠后面的字母也一起被转义成了其它的字符,再次调用的话势必会出问题。

问题解决:

程序没有问题,问题出在绝对路径上,如果我们将imread("C:\Users\Administrator\Desktop\图库\a.jpg")改为imread("C:\\Users\\Administrator\\Desktop\图库\\a.jpg")或者imread("C:/Users/Administrator/Desktop/图库/a.jpg")问题就解决了。

例如:

img_path='D:/python_work/objectDetection/YOLOv4/pytorch-YOLOv4/myData/JPEGImages/000210.jpeg'
#如果是绝对路径使用一个反斜杠就会报错
#img_path='D:\python_work\objectDetection\YOLOv4\pytorch-YOLOv4\myData\JPEGImages\000247.jpg'
img = cv2.imread(img_path)
print(img)
cv2.imshow('img',img)
cv2.waitKey(0)
img1= cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print("================")
print(img1)

问题完美解决!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值