rgb颜色处理

三维rgb

import numpy as np
import matplotlib.image as mpimg
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

img = mpimg.imread('C:/Users/S5/Desktop/PIC/case4/or6.png')
pixels = img.shape[0]*img.shape[1]
channels = 3
data = np.reshape(img[:, :, :channels], (pixels, channels))

histo_rgb, _ = np.histogramdd(data, bins=256)
r, g, b = np.nonzero(histo_rgb)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter3D(r, g, b)
ax.set_xlabel('Red')
ax.set_ylabel('Green')
ax.set_zlabel('Blue')
plt.title('RGB colors')
plt.show()

rgb分裂

import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('C:/Users/S5/Desktop/PIC/case4/or6.png')
 #获取图像的三通道
blue,green,red = cv2.split(img)
cv2.imshow('green',green)
cv2.imshow("Red",red)
cv2.imshow("Blue",blue)
cv2.waitKey()
cv2.destroyAllWindows()
#     #或者
#     blue = f[:,:,0]
#     green = f[:,:,1]
#     red = f[:,:,2]

rgb合并

import numpy as np
import cv2
 
image = cv2.imread("C:/Users/S5/Desktop/PIC/case4/or6.png")
cv2.imshow("Original",image)
cv2.waitKey(0)
 
#R、G、B分量的提取
(B,G,R) = cv2.split(image)#提取R、G、B分量
#R、G、B的合并
merged = cv2.merge([B,G,R])#合并R、G、B分量
cv2.imshow("Merged",merged)
cv2.waitKey(0)

去除白色背景

from PIL import Image
import numpy as np

threshold=100
dist=5
img=Image.open("C:\\Users\\S5\\Desktop\\PIC\\case4\\or9.png").convert('RGBA') #增加Alpha通道
img.show()
arr=np.array(np.asarray(img)) #获取图像数据,使用了numpy
#r,g,b,a=np.rollaxis(arr,axis=-1)img.show()
r,g,b,a=np.rollaxis(arr,axis=-1)
img.show()
mask=((r>threshold)
      & (g>threshold)
      & (b>threshold)
      & (np.abs(r-g)<dist) #将接近白色背景的也替换掉
      & (np.abs(r-b)<dist)
      & (np.abs(g-b)<dist)
      )
arr[mask,3]=0
img=Image.fromarray(arr,mode='RGBA') #转换为图像格式
img.show()
import numpy as np
import cv2
 
image = cv2.imread("C:/Users/S5/Desktop/PIC/case4/or6.png")
cv2.imshow("Original",image)
cv2.waitKey(0)
 
#HSV空间
hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
cv2.imshow("HSV",hsv)
cv2.waitKey(0)
import numpy as np
import cv2
 
image = cv2.imread("C:/Users/S5/Desktop/PIC/case4/or6.png")
cv2.imshow("Original",image)
cv2.waitKey(0)
 
#lab空间
lab = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
cv2.imshow("L*a*b*", lab)
cv2.waitKey(0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值