OpenCV的一些常见操作(个人备忘)
1.图片显示不全,只是显示了一小部分,如何调整图片位置?
cv2.namedWindow("title",cv2.WINDOW_NORMAL) #将你要操作的窗口进行指定类型,一般默认为WINDOW_AUTOSIZE
cv2.imshow("title",img) #显示图片
cv2.waitKey(0) #等待,不加则让显示窗口会一闪而过
2.如何将某一个颜色通道关闭,比如说我想去掉图片中的Blue通道?
b,g,r = cv2.split(img) #spilt方法可以直接分离三色通道
img = cv2.merge([np.zeros_like(b),g,r]) #B通道用等大的0矩阵替换,G,R通道保持不变
3.我想将一个numpy矩阵当作图像处理,直接使用imshow却报错,应该怎么办?
错误代码: error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow'
原因:缺少指定的数据格式
修改如下:
img2 = np.full((500, 500, 3), 255, dtype=np.uint8)
cv2.imshow('', img2)
cv2.waitKey(0)
4.我想并排显示,或者纵向显示多个图像,怎么处理?
使用numpy的合并矩阵方法,vstack(纵向)或者hstack(横向),将两个矩阵合并成新的矩阵,再调用imshow显示
5.如何在一张图片上使用cv2增加文字,比如说增加识别标签?
使用cv2.putText——putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
img是目标图片,text是目标文本,org是显示位置,fontFace是字体种类,fontScale是字体大小,color是颜色,thickness是字体粗细
cv2.putText(im,prdict[i], (100, 50), cv2.FONT_HERSHEY_COMPLEX, 0.7, (100, 100, 100), 2)
cv2.imshow(prdict[i], im)
6.未完待续
我亲眼目睹
每一个迈向死亡的生命都在热烈地生长

浙公网安备 33010602011771号