【Python】彩色图像的灰度化、二值化

您所在的位置:网站首页 灰度图转换为rgb 【Python】彩色图像的灰度化、二值化

【Python】彩色图像的灰度化、二值化

2023-05-24 11:09| 来源: 网络整理| 查看: 265

1、灰度化

灰度化,在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。

2、二值化

二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

""" @author: 绯雨千叶 彩色图像的灰度化、二值化 """ import numpy as np import matplotlib.pyplot as plt import cv2 # 灰度化实现方式(原理) # cv中读取颜色为BGR而不是主流的RBG,大坑 img1 = cv2.imread("../img/lrn.jpg") h, w = img1.shape[:2] # 获取图片的高、宽 img2 = np.zeros([h, w], img1.dtype) # 创建一张和当前图片大小一样的单通道图片 for i in range(h): for j in range(w): # 取出当前high和wide中的BGR坐标 m = img1[i, j] # 将BGR坐标转化gray坐标并赋值给新图像 # 浮点算法:Gray = R0.3 + G0.59 + B0.11 img2[i, j] = int(m[0] * 0.11 + m[1] * 0.59 + m[2] * 0.3) # print("原图三色通道显示:%s" % img1) # print("灰度图单色通道显示:%s" % img2) cv2.imshow("image show gray", img2) cv2.imshow("image", img1) # 二值化实现方式(原理) img3 = np.zeros([h, w], img1.dtype) for i in range(h): for j in range(w): if img2[i, j] = 0.5, 1, 0) # 是的话是1,否则为0 plt.subplot(223) plt.imshow(img3, cmap='gray') plt.show()

效果展示: 

灰度化:

浮点算法:Gray = R0.3 + G0.59 + B0.11整数方法:Gray = (R30 + G59 + B11)/100移位方法:Gray = (R76 + G151 + B*28)>>8平均值法:Gray = (R + G + B)/ 3仅取绿色:Gray = G

自用知识点:

img.shape[:2]取彩色图片的长、宽img.shape[:3]取彩色图片的长、宽、通道img.shape[0]图像的垂直尺寸(高度)img.shape[1]图像的水平尺寸(宽度)img.shape[2]图像的通道数



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3