图片颜色空间检测

图片颜色空间检测代码

原文

rub01.jpg
rub00.jpg
import cv2,time,argparse,glob
import numpy as np
# 鼠标回调函数
def showPixelValue(event,x,y,flags,param):
    global img, combinedResult, placeholder
    
    if event == cv2.EVENT_MOUSEMOVE:
        # 从鼠标所在位置获取像素值 (x,y)
        bgr = img[y,x]

        # 将BGR像素转换为其他颜色格式
        ycb = cv2.cvtColor(np.uint8([[bgr]]),cv2.COLOR_BGR2YCrCb)[0][0]
        lab = cv2.cvtColor(np.uint8([[bgr]]),cv2.COLOR_BGR2Lab)[0][0]
        hsv = cv2.cvtColor(np.uint8([[bgr]]),cv2.COLOR_BGR2HSV)[0][0]
        
        # 创建一个空的占位符以显示值
        placeholder = np.zeros((img.shape[0],400,3),dtype=np.uint8)

        # 用颜色空间的值填充占位符
        cv2.putText(placeholder, "BGR {}".format(bgr), (20, 70), cv2.FONT_HERSHEY_COMPLEX, .9, (255,255,255), 1, cv2.LINE_AA)
        cv2.putText(placeholder, "HSV {}".format(hsv), (20, 140), cv2.FONT_HERSHEY_COMPLEX, .9, (255,255,255), 1, cv2.LINE_AA)
        cv2.putText(placeholder, "YCrCb {}".format(ycb), (20, 210), cv2.FONT_HERSHEY_COMPLEX, .9, (255,255,255), 1, cv2.LINE_AA)
        cv2.putText(placeholder, "LAB {}".format(lab), (20, 280), cv2.FONT_HERSHEY_COMPLEX, .9, (255,255,255), 1, cv2.LINE_AA)
        
        # 合并两个结果以在单个图像中并排显示
        combinedResult = np.hstack([img,placeholder])
        
        cv2.imshow('P< N>',combinedResult)

键盘P上一张图 键盘N下一张图

 # 加载图像并设置鼠标回调函数
global img
files = glob.glob('images/rub*.jpg')
files.sort()
img = cv2.imread(files[0])
img = cv2.resize(img,(400,400))
cv2.imshow('P< N>',img)

# 创建一个空窗口
cv2.namedWindow('P< N>')
# 为鼠标上的任何事件创建一个回调函数
cv2.setMouseCallback('P< N>',showPixelValue)
i = 0
while(1):
    k = cv2.waitKey(1) & 0xFF
    # 检查文件夹中的下一张图像
    if k == ord('n'):
        i += 1
        img = cv2.imread(files[i%len(files)])
        img = cv2.resize(img,(400,400))
        cv2.imshow('P< N>',img)

    # 检查文件夹中的上一张图像
    elif k == ord('p'):
        i -= 1
        img = cv2.imread(files[i%len(files)])
        img = cv2.resize(img,(400,400))
        cv2.imshow('P< N>',img)

    elif k == 27:
        cv2.destroyAllWindows()
        break
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。