赞
踩
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
(347, 496, 3)
注:数据存储格式,每个单元数据范围在0~255,RGB中(255,255,255)为白色,(0,0,0)为黑色,在二位平面图上,原点(0,0)在图的左下角。
按水印颜色范围滤除水印方案,主要是针对简单、水印背景颜色单一,例如上图中的灰色。使用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()
对比Open CV输出,BGR颜色发生了变化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。