|
|
import math
|
|
|
import cv2
|
|
|
import numpy as np
|
|
|
import struct
|
|
|
import matplotlib.pyplot as plt
|
|
|
|
|
|
class ColorMenu:
|
|
|
#读取彩色图片
|
|
|
def __init__(self, pic_path):
|
|
|
self.pic_path = pic_path
|
|
|
self.pic = cv2.imread(self.pic_path, 1).astype(np.uint8)
|
|
|
self.b = self.pic[:, :, 0]
|
|
|
self.g = self.pic[:, :, 1]
|
|
|
self.r = self.pic[:, :, 2]
|
|
|
|
|
|
hsv = cv2.cvtColor(self.pic, cv2.COLOR_BGR2HSV)
|
|
|
self.h = hsv[:, :, 0]
|
|
|
self.s = hsv[:, :, 1]
|
|
|
self.v = hsv[:, :, 2]
|
|
|
|
|
|
def ShowPic(self):
|
|
|
cv2.imshow('当前图片', self.pic)
|
|
|
cv2.waitKey(0) # 0一直显示,直到有键盘输入。也可以是其他数字.
|
|
|
|
|
|
|
|
|
#RGB
|
|
|
def Bchannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.b)
|
|
|
# cv2.imshow('Bchannel', self.b)
|
|
|
cv2.waitKey(0)
|
|
|
def Gchannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.g)
|
|
|
#cv2.imshow('Gchannel', self.g)
|
|
|
cv2.waitKey(0)
|
|
|
def Rchannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.r)
|
|
|
#cv2.imshow('Gchannel', self.r)
|
|
|
cv2.waitKey(0)
|
|
|
|
|
|
#HSV
|
|
|
def Hchannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.h)
|
|
|
#cv2.imshow('Hchannel', self.h)
|
|
|
cv2.waitKey(0)
|
|
|
def Schannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.s)
|
|
|
#cv2.imshow('Schannel', self.s)
|
|
|
cv2.waitKey(0)
|
|
|
def Vchannel(self):
|
|
|
cv2.imwrite('img/colorImgs/Cchannel.jpg', self.v)
|
|
|
#cv2.imshow('Vchannel', self.v)
|
|
|
cv2.waitKey(0) |