今天在学习python的时候,编写了如下代码:
import cv2
input_img = cv2.imread('1.jpg')
cv2.imshow('input_one',input_img)#第一个属性为显示时窗口的名称
#修改图片尺寸
resize_img = cv2.resize(input_img,dsize=(1600,900))#dsize参数为(宽度,高度)
print('原来图片的形状:'+input_img.shape)#str将input的shape信息转换为了字符串,否则用+会报错
print('修改后图片的形状:',resize_img.shape)
cv2.imshow('resize_one',resize_img)
#键盘输入q时退出,大写Q无效
while True:
if ord('q') == cv2.waitKey(0):
break
cv2.destroyAllWindows()
结果抛出了如下错误:
C:\AppData\Local\Programs\Python\Python38\python.exe C:/Users/PycharmProjects/RenLianShiBie/main3XiuGaiTuPianChiCun.py
Traceback (most recent call last):
File "C:/Users/laoliu/PycharmProjects/RenLianShiBie/main3XiuGaiTuPianChiCun.py", line 8, in <module>
print('原来图片的形状:'+input_img.shape)
TypeError: can only concatenate str (not "tuple") to str
Process finished with exit code 1
TypeError: can only concatenate str (not “tuple”) to str
查了查百度,发现是类型问题。
解决方案:
print时如果使用+,那么+后的内容只能为字符串(依据自己目前的知识量只能得到这个结论),需要用str将input的shape信息转换为字符串,否则用+会报错。
如有不够详细或错误之处,欢迎大佬们以各种方式提出,大家共同进步。