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.未完待续

posted @ 2020-08-08 19:44  owczhlol  阅读(456)  评论(0)    收藏  举报