当前位置:   article > 正文

Opencv-python去图标与水印方案实践_在线去水印的思路和算法

在线去水印的思路和算法

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。
在这里插入图片描述

RGB 模式的彩色图像在读入 OpenCV 内进行处理时,会按照行方向依次读取该 RGB 图像的 B 通道、G 通道、R 通道的像素点,并将像素点以行为单位存储在 ndarray 的列中。例如,有一幅大小为 R 行×C 列的原始 RGB 图像,其在 OpenCV 内以 BGR 模式的三维数组形式存储。
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
import cv2
img=cv2.imread('img\GDP.JPG')

h,w,l=img.shape
img.shape
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
	(347, 496, 3)
  • 1

注:数据存储格式,每个单元数据范围在0~255,RGB中(255,255,255)为白色,(0,0,0)为黑色,在二位平面图上,原点(0,0)在图的左下角。

1. 按水印颜色范围滤除水印或按曲线颜色提取图形

按水印颜色范围滤除水印方案,主要是针对简单、水印背景颜色单一,例如上图中的灰色。使用windows系统自带工具“图画”,获取RGB颜色值。
在这里插入图片描述

如图中,选中1号位置取色器,放置到水印图标上2号位置,通过3号位置的颜色编辑器获取颜色数值。(默认灰色为:128,128,128)

R=242,G=242,B=244

删除灰色,以及临近灰色,同时,也可能把临近的灰色坐标也删除,删除就删除了吧,下一篇再说用处。

import numpy as np
import matplotlib.pyplot as plt
import cv2
img=cv2.imread('img\GDP.JPG')

h,w,l=img.shape
img.shape

for j in range(h):
    for k in range(w):
    	# 删除灰色水印
        if img[j][k][0] > 128 and img[j][k][1] > 128 and img[j][k][2] > 128 :
            img[j][k][0] = 255
            img[j][k][1] = 255 
            img[j][k][2] = 255
        # 删除标题
        if img[j][k][0] < 150 and img[j][k][1] < 150 and img[j][k][2] < 150 :
            img[j][k][0] = 255
            img[j][k][1] = 255 
            img[j][k][2] = 255            

plt.imshow(img,cmap=plt.cm.gray)

cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

对比Open CV输出,BGR颜色发生了变化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/975416
推荐阅读
相关标签