图像处理灰度化和二值化

    xiaoxiao2021-03-25  95

    # encoding:utf-8 import cv2 img = cv2.imread("../ts.png"); height = img.shape[0] width = img.shape[1] channel = img.shape[2] # 算法 # R=255-R # G=255-G # B=255-B # for i in range(height): # for j in range(width): # for k in range(channel): # img[i,j,k] = 255 - img[i,j,k] # # 灰度化 # 算法Gray=(R*30+G*59+B*11)/100 # 效果好 # for i in range(height): # for j in range(width): # gray = (30*img[i,j,0]+59*img[i,j,1]+11*img[i,j,2])/100 # img[i, j, 0] = gray # img[i, j, 1] = gray # img[i, j, 2] = gray # 灰度化 # 算法Gray=(R+G+B)/3; # 效果太烂 # for i in range(height): # for j in range(width): # gray = (img[i,j,0]+img[i,j,1]+img[i,j,2])/3 # img[i, j, 0] = gray # img[i, j, 1] = gray # img[i, j, 2] = gray # 灰度化 # 算法Gray=G(R/B)都可以 # 效果好 # for i in range(height): # for j in range(width): # img[i, j, 0] = img[i, j, 2] # img[i, j, 1] = img[i, j, 2] # img[i, j, 2] = img[i, j, 2] # # 二值化 # 算法 # 先灰度化,然后设置阈值, # 大于这个的灰度值设置成255,小与这个值的设置成0 # 效果不好 # for i in range(height): # for j in range(width): # gray = (30 * img[i, j, 0] + 59 * img[i, j, 1] + 11 * img[i, j, 2]) / 100 # if gray > 100: # img[i, j, 0] = 255 # img[i, j, 1] = 255 # img[i, j, 2] = 255 # else: # img[i, j, 0] = 0 # img[i, j, 1] = 0 # img[i, j, 2] = 0 cv2.namedWindow("imageShow") cv2.imshow("imageShow",img) cv2.waitKey(0) cv2.destroyAllWindows()

    原图:

    注释代码的效果依次为:

    转载请注明原文地址: https://ju.6miu.com/read-23902.html

    最新回复(0)