当前位置: 首页> 健康> 知识 > 自适应网站建设哪家便宜_专业的网站建设企业_网站片区_网站seo基础优化

自适应网站建设哪家便宜_专业的网站建设企业_网站片区_网站seo基础优化

时间:2025/7/18 9:37:21来源:https://blog.csdn.net/2301_78106697/article/details/144434360 浏览次数:0次
自适应网站建设哪家便宜_专业的网站建设企业_网站片区_网站seo基础优化

定义

首先,前文提到,图片的存储是一个三位数组,并且有RGB三色通道,所以可以展现多种色彩,但对灰度图来说,它只有一种色调。所以它是一个二维数组

灰度图:单通道图,每个像素点只存一个像素值,图像整体表现为灰色,从0-255表现为从黑到白的过程。

三种方法

对图片进行灰度化也就是改变其三信道的信道值,使其整体呈就灰色

1.加权平均法

加权平均法:对于彩色图像的每个像素【每个像素包含 RGB三通道】,它会按照一定的权重去乘以每个通道的像素值,并将其相加,得到最后的值就是灰度图像中对应位置的像素值,权重的比例为: R乘以0.299,G乘以0.587,B乘以0.114。

2.平均值法:

平均值法:对于彩色图像的每个像素,它会将R、G、B三个通道的像素值全部加起来,然后再除以三,得到的平均值就是灰度图像中对应位置的像素值。

 3.最大值法

最大值法:对于彩色图像的每个像素,它会从R、G、B三个通道的值中选出最大的一个,并将其作为灰度图像中对应位置的像素值。

 代码

import numpy as np
import matplotlib.pyplot as pltimg = plt.imread("./flower.png")img_gray = np.zeros_like(img)#下面三种方法演示时三选一即可# 1.使用加权均值法进行灰度化
for i in range(img_gray.shape[0]):for j in range(img_gray.shape[1]):img_gray[i, j, :] = (img[i, j, 0]*0.299 + img[i, j, 1]*0.587 + img[i, j, 2]*0.114)# 2.使用平均值法进行灰度化
for i in range(img_gray.shape[0]):for j in range(img_gray.shape[1]):img_gray[i, j, :] = (img[i, j, 0] + img[i, j, 1] + img[i, j, 2]) / 3# 3.使用最大值法进行灰度化
for i in range(img_gray.shape[0]):for j in range(img_gray.shape[1]):img_gray[i, j, :] = max(img[i, j, 0] , img[i, j, 1] , img[i, j, 2])plt.subplot(121)
plt.imshow(img)plt.subplot(122)
plt.imshow(img_gray)plt.tight_layout()
plt.show()

无论何种方式,都是对三信道值做出综合处理,然后把相对灰度化的 信道值 赋值给 单信道。

上述代码只为演示原理,在opencv库中已经封装了有关灰度化的接口,我们直接调用下面的函数即可,一行搞定,下面有详细介绍


img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

cv2.cvtColor()函数

功能:用于转换图像从一个颜色空间到另一个颜色空间

参数:

  • src: 输入图像,这是一个包含图像数据的 NumPy 数组。
  • code: 用于指定颜色空间转换的代码,它是一个整数标识符,表示源颜色空间和目标颜色空间之间的转换。OpenCV 提供了多种转换代码,如 cv2.COLOR_BGR2GRAY(从 BGR 转换到灰度图),cv2.COLOR_RGB2HSV(从 RGB 转换到 HSV),等等。
  • dst: 输出图像,与输入图像具有相同的大小和深度。这是一个可选参数,如果不提供,函数会创建一个新的图像来存储转换结果。
  • flags: 一个可选的标志,用于指定颜色转换的一些特定选项。在大多数情况下,这个参数可以省略,因为它有默认值。

函数返回值:

  • dst: 转换后的图像,这是一个包含新颜色空间图像数据的 NumPy 数组。
关键字:自适应网站建设哪家便宜_专业的网站建设企业_网站片区_网站seo基础优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: