OpenCV给图像添加标尺


我朋友给了我一些图片,想让我帮他加上图例。最开始我的思路是先对其中的一个有标尺的图像做阈值处理,清楚掉图像其它信息,只留下标尺。并以这个图像做模板,把它添加到其它没有标尺的图像中。我的操作如下:

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。

 

     掩码图像           输入图像           输出图像_示例


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM