使用python+opencv实时显示图像中每一点坐标与像素值

使用python+opencv实时显示图像中每一点坐标与像素值

之前使用halcon做图形阈值处理时,发现通过鼠标能很方便的查看图像中的每一点坐标和对应像素值,非常好用,后来使用opencv时,发现无法直接查看图像中的某点像素值,很难直观从像素数值的变化上来感受图像的变化,于是就写了一个简单的程序,用于实时查看图像像素大小。

程序如下

import cv2

def get_point(event, x, y, flags, param):
    # 鼠标单击事件
    if event == cv2.EVENT_LBUTTONDOWN:
        # 输出坐标
        print('坐标值: ', x, y)
        # 在传入参数图像上画出该点
        #cv2.circle(param, (x, y), 1, (255, 255, 255), thickness=-1)
        img = param.copy()
        # 输出坐标点的像素值
        print('像素值:',param[y][x]) # 注意此处反转,(纵,横,通道)
        # 显示坐标与像素
        text = "("+str(x)+','+str(y)+')'+str(param[y][x])
        cv2.putText(img,text,(0,param.shape[0]),cv2.FONT_HERSHEY_PLAIN,1.5,(0,0,255),1)
        cv2.imshow('image', img)
        cv2.waitKey(0)

if __name__ == "__main__":
    # 定义两幅图像
    image = cv2.imread('./answer sheet/images/example_test.png')
    # image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

    # 定义两个窗口 并绑定事件 传入各自对应的参数
    cv2.namedWindow('image')
    cv2.setMouseCallback('image', get_point, image)

    # 显示图像
    while(True):
        cv2.imshow('image', image)
        if cv2.waitKey(20) & 0xFF == 27:
            break

效果图:

随便点击图中一点,就能在图中左下角显示该点的坐标值和像素值。
使用python+opencv实时显示图像中每一点坐标与像素值_第1张图片

你可能感兴趣的:(python,opencv)