三维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)