我朋友给了我一些图片,想让我帮他加上图例。最开始我的思路是先对其中的一个有标尺的图像做阈值处理,清楚掉图像其它信息,只留下标尺。并以这个图像做模板,把它添加到其它没有标尺的图像中。我的操作如下:
import cv2 mask = cv2.imread('maskk.jpg')#读入掩码图像 image = cv2.imread('process/Z0-1 400-4.jpg') image = cv2.add(image, mask) cv2.imwrite('Z0-1 400-4.jpg',image) #保存图像
其中maskk掩码图像是通过画图软件,去掉标尺以外的图像信息,也可以使用语句生成掩码图像:mask[mask <220] = 0 (将maskk中像素值低于220的所有像素重新赋值为0,这个有点类似于阈值分割)。需要说明的一点是:
image = cv2.add(image, mask)
该语句将图像image与掩码图像像素值对应相加,因为标尺是白色,背景是黑色,这样相加后mask图像中的标尺会出现在image中,而图像中其它位置信息不会受到干扰。
在Python中还有一种图像叠加方式:image = image + mask。这种形式相加时如果对应像素值之和大于255则会出现溢出现象,如像素值之和为 260,最终得到的像素值为4,其运算过程为260 % 256 = 4。