原创 

python3 opencv2 判断图片不同背景色添加不同颜色水印

分类:python    391人阅读    IT小君  2020-11-07 12:18

问题:前段时间使用python3+opencv2给博客添加了图片上传添加水印  功能,但是水印固定为白色,当给白色背景图片添加水印后完全看不出来。

思路:判断不同背景色像素 然后选择不同颜色的水印,所以需要取出需要添加水印图片位置的颜色信息进行判断

实例代码demo如下:

def addWaterMark(self,path):
        img = cv.imread(path)
        font = cv.FONT_HERSHEY_COMPLEX_SMALL
        
        bgr = img[(int(img.shape[0]*0.5), img.shape[1]-15)]
        if all(bgr==np.array([255, 255,255])):
            cv.putText(img, 'yy123.ink', (int(img.shape[1]*0.5), img.shape[0]-15), font, 0.8, (51, 204, 153),2)
        else:
            cv.putText(img, 'yy123.ink', (int(img.shape[1] * 0.5), img.shape[0] - 15), font, 0.8, (255, 255, 255), 2)
        # 保存添加文字后的图片
        cv.imwrite('D:/images/223.jpg', img)


坑:The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

nparray矩阵直接比较相等报错:

if bgr==np.array([255, 255,255]):

因为返回的是 :[True True True]

错误提示使用any和all,

显然any() 表示只要有一个True 就返回 True, 

all()表示所有元素为True才会返回True, 否则返回False.

所以改成如下:

if all(bgr==np.array([255, 255,255])):


结语

本文介绍添加不同颜色水印的思路和python3+opencv2 的具体实现实例代码Demo,以及其中遇到的问题的解决。希望以上代码例子对你有所帮助。





点击广告,支持我们为你提供更好的服务

HTML5 Canvas竖直流动线条背景动画特效

响应式咖啡饮品宣传网站模板

HTML5现代家居装潢公司网站模板

js+css3抽奖转盘旋转点餐代码

css+js实现的颜色渐变数字时钟动画特效

现代时尚家具公司网站模板

jQuery右端悬浮带返回顶部特效

HTML5数字产品服务公司网站模板

响应式时尚单品在线商城网站模板

html5图标下拉搜索框自动匹配代码

网页设计开发公司网站模板

html5 svg夜空中星星流星动画场景特效

canvas炫酷鼠标移动文字粒子特效

有机水果蔬菜HTML5网站模板

html5 canvas进度条圆环图表统计动画特效

小众时尚单品在线电子商务网站模板

html5 canvas彩色碎片组合球形旋转动画特效

响应式太阳能能源公司网站模板

css鼠标跟随文字模糊特效

中小型创意设计服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务