opencv图像灰度化

这篇具有很好参考价值的文章主要介绍了opencv图像灰度化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • opencv图像灰度化

     

  • 图像灰度化就是将图像的亮度值(R,G,B)按照一定的方式映射到0-255之间的灰度值上,为了使图像看起来不那么单调,需要将图像的亮度值进行变换。下面简单介绍下 opencv中的灰度化函数: 1、先将图像的像素值转换为R,G,B三个分量,其中R分量用于图像灰度变换,G分量用于彩色变换。 2、然后根据灰度变换公式: 3、根据公式可以计算出每个像素点的灰度值 4、最后把这些灰度值对应到每个像素点的值上就完成了图像灰度化。 1、先将图像转换为R,G,B三个分量。 3、最后把每个像素点的灰度值对应到对应的颜色通道上。

    • 1、利用 opencv中的 image. palindrome库,调用 sobel函数来获取像素值,然后利用灰度变换函数计算出灰度值。

      1、首先使用 image. palindrome库中的 sobel函数,获取像素值,然后利用灰度变换函数计算出灰度值。 2、在 opencv中,如果想对图像的某一像素点进行灰度变换,可以直接使用 grid函数(这是一个与 class文件名同名的函数)。grid函数实现了图像中多个像素点的灰度值统一。 3、在 opencv中,我们可以通过 openCV库中的 reverse和 convert方法来实现图像灰度化。 4、具体操作如下: 1)首先将图像分成多个像素值相同的像素组,每一个像素组可以看成一个灰度值相同的灰度值为1的像素,例如在 image. palindrome库中,我们将图像分为了四个像素组: 其中每个像素组对应一个灰度变换函数,如上面代码所示。 2)然后使用 reverse和 convert方法来分别计算每个像素组的灰度变换值,通过调用 reverse函数来获取每个像素组的灰度值; 3)最后将计算得到的灰度值与图像中所有像素点灰度值相乘,即可得到图像中所有像素点的灰度值。 5、可以直接调用 grid函数,来计算图像中所有像素点的灰度值: 6、但是这种方法会将图像分割成一大片一大片的灰度区域,无法处理一些比较小的区域。例如在图片中有一个点,可以认为这个点是图像中的一个灰度值为1的像素组,那么我们就可以直接将这个点作为分割边界: 7、可以通过 symbols函数来实现图像分割。symbols函数是对一个整幅图像进行灰度变换计算得到结果。 8、为了方便理解,我们将整个图像分成四个大小相同的部分,分别是红色、绿色、蓝色和白色。这四个部分分别对应不同的颜色通道: 9、红色通道对应红色灰度值;绿色通道对应绿色灰度值;蓝色通道对应蓝色灰度值;白色通道对应白色灰度值。可以通过计算得到四个颜色通道对应的灰度变换公式:

    • 2、利用 opencv中的opencv-benchmark库,设置像素值与对应的通道阈值,然后使用opencv-benchmark库中的 gamma函数,计算出每个像素点的灰度值。

      3、在 opencv中,输入一幅图片,可以直接用 sobel函数,输出一幅灰度化后的图片。 4、我们可以使用opencv-benchmark库中的 gamma函数,将图像的亮度值映射到一个255灰度值上。 5、opencv-benchmark库中有一个函数是从一个 RGB色彩空间到另一个 RGB色彩空间的映射函数,它可以将图像灰度化后的颜色通道映射到一个 RGB颜色空间上。

    • 3、在 opencv中对每个像素点灰度值进行归一化处理,然后利用 sobel函数获取每个像素点的颜色通道。

      而根据公式,R分量可以被变换为0-255之间的任何一个值,即R分量可以被变换为0-255之间的任意一个值。因为R和G是颜色分量,所以它们能够对应到每个像素点上。 2、然后对R,G,B三个分量进行归一化处理,归一化是指在 opencv中将一张图像的 RGB值按照其灰度值进行映射的过程。RGB三个像素点中 RGB分量都是由三个不同颜色的亮度值组成的,其中第一个亮度值R代表着该像素点的颜色(红绿蓝);第二个亮度值G代表着该像素点的颜色(黄蓝绿);第三个亮度值B代表着该像素点的颜色(黑白)。归一化后的 RGB三个像素点可以被对应到三个不同通道上。由于R分量和G分量是对同一颜色通道进行映射,因此它们是相对独立的。 3、然后将这三个颜色通道分别映射到0-255之间的任意一个通道上,即把 RGB三个像素点映射到三个不同色彩通道上。最终得到灰度化后的图像。根据公式计算出每个像素点对应到哪一个颜色通道上,然后将这三个通道连接起来得到最终结果。灰度变换就完成了。 4、我们可以用 opencv来实现对图像灰度变换后得到灰度值的操作,下面就是用 opencv实现灰度化后得到灰度值对应到 RGB三个颜色通道上的代码: 5、然后使用 sobel函数将这些对应到三个不同色彩通道上的灰度值映射到 RGB颜色通道上。因为 sobel函数获取每个像素点对应到哪一个颜色通道上是由 opencv自动计算决定的,所以 sobel函数不需要我们自己去实现。 9、通过上面介绍,我们可以看出灰度变换后得到灰度值对应到 RGB三个色彩通道上都是由 opencv自动计算决定的。

    • 4、将这些灰度值对应的颜色通道作为新的颜色通道,再对新的颜色通道进行灰度变换处理。

      灰度变换是图像处理中的一种基本运算,它将灰度图像的亮度值映射到0-255之间的灰度值上。通过对图像进行灰度变换,可以得到不同亮度值对应的灰度值。 在图像处理中,利用灰度变换函数可以方便地将灰度图像转换为彩色图像,从而便于对图像进行后续处理。对原始图像进行灰度变换后,可以得到一幅新的彩色图像,而彩色图像在现实生活中也常常被人们所使用,如彩色印刷、彩色电视、彩色照片等。 opencv中的灰度化函数可以将一个灰度图像转换成一个颜色通道(RGB)的矩阵。可以对一个像素点进行灰度变换,也可以对多个像素点进行灰度变换。例如,给定一个灰度等级为9的图像: 通过计算9个像素点的灰度值和对应的颜色通道,就可以得到9个新颜色通道。将这些新颜色通道作为新的 RGB矩阵进行后续处理即可得到想要的彩色效果。

以下是几种常用的 OpenCV 图像灰度化代码:

1. 使用 cvtColor 函数将图像转换为灰度图像:
```python
import cv2
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 使用 cv2.imread 函数读取图像,并使用 cv2.cvtColor 函数将图像转换为灰度图像:
```python
import cv2
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Gray Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
3. 使用 numpy 的 dot 函数将图像转换为灰度图像:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
gray_img = np.dot(img[..., :3], [0.299, 0.587, 0.114])
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
以上是几种常用的 OpenCV 图像灰度化代码,可以根据自己的需求选择适合的方法。文章来源地址https://www.toymoban.com/news/detail-494544.html

到了这里,关于opencv图像灰度化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV增加图像的亮度及对比度

    案例:输出一张原图,增加该图片的亮度及对比度 基本概念: 亮度:RGB的像素值范围是0~255,我们称从0——255随着像素值的增加图像会越来月亮,反之会越来越暗。所以我们可以通过对图像像素加减来改变图像的亮度。 对比度:其反应的是图像中各像素的差异(层次感、落

    2024年02月12日
    浏览(34)
  • opencv 图像基础处理_灰度图像

    二值图像表示起来简单方便,但是因为其仅有黑白两种颜色,所表示的图像不够细腻。如果想要表现更多的细节,就需要使用更多的颜色。例如,图 2-3 中的 lena 图像是一幅灰度图像, 它采用了更多的数值以体现不同的颜色,因此该图像的细节信息更丰富。 通常,计算机会将

    2024年02月15日
    浏览(38)
  • opencv读取灰度图像

    本文档创建于2023年3月10日 本文记录了C++版opencv读取灰度图像的不同方式及区别 作者:RobotFreak C++版的 opencv 读取灰度图像可以有不同的方法,这里列出几种方法,并简述它们的区别。 这里用到的两张图片为lena.jpg(彩色)和lena.bmp(灰度) 图像本身就是灰度图像,直接使用

    2024年02月06日
    浏览(56)
  • opencv图像灰度化

      图像灰度化就是将图像的亮度值(R,G,B)按照一定的方式映射到0-255之间的灰度值上,为了使图像看起来不那么单调,需要将图像的亮度值进行变换。下面简单介绍下 opencv中的灰度化函数: 1、先将图像的像素值转换为R,G,B三个分量,其中R分量用于图像灰度变换,G分量用于

    2024年02月09日
    浏览(30)
  • OpenCV图像处理-灰度处理

    灰度的线性变换将图像中的所有像素点的值按 线性变换函数 进行变换。 在曝光不足或过度的情况下,图像的灰度值会局限在一个很小的范围内,这时在显示器上看到的将是一个模糊不清、似乎没有层次的图像。 针对这一情况,使用一个线性单值函数对图像内的每一个像素做

    2024年02月08日
    浏览(89)
  • Opencv 图像处理:图像基础操作与灰度转化

    本文已收录于Opencv系列专栏: 深入浅出OpenCV ,专栏旨在详解Python版本的Opencv,为计算机视觉的开发与研究打下坚实基础。免费订阅,持续更新。 1.图像格式 图像压缩比: 通过编码器压缩后的图象数字大小和原图象数字大小的压缩比。 BMP 格式 Windows系统下的 标准位图格式 ,

    2024年02月04日
    浏览(34)
  • Python OpenCV调整图像亮度对比度及RGB色彩

    python通过opencv库调整图像的步骤: 1. 读取图像 直接通过cv2库读取图像,可以读取jpg, png等格式 2. 调整图像亮度及对比度 OpenCV提供 convertScaleAbs 函数来调整对比度和亮度,可以直接调用该函数 如果只调整RGB颜色通道,则可以忽略此步骤 3. 分离出图片的B,R,G颜色通道 使用

    2024年02月03日
    浏览(33)
  • OpenCV读取图像时按照BGR的顺序HWC排列,PyTorch按照RGB的顺序CHW排列

    在OpenCV中,读取的图片默认是HWC格式,即按照高度、宽度和通道数的顺序排列图像尺寸的格式。我们看最后一个维度是C,因此最小颗粒度是C。 例如,一张形状为256×256×3的RGB图像,在OpenCV中读取后的格式为[256, 256, 3],其中最后一个维度表示图像的通道数。在OpenCV中,可以通

    2024年02月04日
    浏览(29)
  • 基于opencv的c++图像处理(灰度变换)

    基于opencv的c++接口,实现常用的图像灰度变换方法,包括了线性变换、图像反转、对数变换和伽马变换。 函数 cv::normalize 标准化缩放和移动输入数组元素 当 normType=NORM_MINMAX 时(仅适用于密集数组)。可选掩码指定要规范化的子数组。这意味着在子数组上计算范数或 min-n-ma

    2024年02月04日
    浏览(50)
  • 【OpenCV】 基础入门(二)图像基础概念 | 图像灰度化处理 | 图像二值化处理

      在计算机中用一般用 M x N 的矩阵来表示一幅尺寸大小为 M x N 的数字图像,矩阵元素的值就是该图像对应位置上的像素值。    对于计算机本地磁盘中的彩色图像,单机鼠标右键,选择“属性”,可以看到一幅图像的基本信息。 1、灰度图:   灰度图是每个像素只有一

    2024年04月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包