C++结合OpenCV:图像的基本表示方法

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

1.二值图像

        二值图像是指仅仅包含黑色和白色两种颜色的图像。在计算机中,通过一个栅格状排列的数据集(矩阵)来表示和处理图像。例如,图1是一个字母A的图像,计算机在处理该图像时,会首先将其划分为一个个的小方块,每一个小方块就是一个独立的处理单位,称为像素点。接下来,计算机会将其中的白色像素点(白色小方块区域)处理为“1”,将黑色像素点(黑色小方块区域)处理为“0”,以方便进行后续的存储和处理等操作。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

图1 字母A的图像

        按照上述处理方式,图2中的字母A在计算机内的存储形式如图2所示。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

图2  计算机内字母A储存形式

        上述图像比较简单,图像内只有黑色和白色两种不同的颜色,因此只使用一个比特位(0或者1)就能表示。

2.灰度图像

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

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

图3 lena图像

        通常,计算机会将灰度处理为256个灰度级,用数值区间[0, 255]来表示。其中,数值“255”表示纯白色,数值“0”表示纯黑色,其余的数值表示从纯白到纯黑之间不同级别的灰度。用于表示256个灰度级的数值0~255,正好可以用一个字节(8位二进制值)来表示。

        表1所示的是部分二进制值所对应的十进制值及灰度颜色。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

表1 部分灰度级及所对应的值

        按照上述方法,图4中的图像需要使用一个各行各列的数值都在[0, 255]之间的矩阵来表示。例如,图4就是图3的lena图像中部分区域的数值表示形式。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

图4 部分lena图像的数值表示

        有些情况下,也会使用8位二进制值来表示一幅二值图像。这种情况下,使用灰度值255表示白色、灰度值0表示黑色。此时,该二值图像内仅有数值0和数值255两种类型的灰度值(灰度级),不存在其他灰度值的像素点。

3.彩色图像

        相比二值图像和灰度图像,彩色图像是更常见的一类图像,它能表现更丰富的细节信息。神经生理学实验发现,在视网膜上存在三种不同的颜色感受器,能够感受三种不同的颜色:红色、绿色和蓝色,即三基色。自然界中常见的各种色光都可以通过将三基色按照一定的比例混合构成。除此以外,从光学角度出发,可以将颜色解析为主波长、纯度、明度等。从心理学和视觉角度出发,可以将颜色解析为色调、饱和度、亮度等。通常,我们将上述采用不同的方式表述颜色的模式称为色彩空间,或者颜色空间、颜色模式等。

        虽然不同的色彩空间具有不同的表示方式,但是各种色彩空间之间可以根据需要按照公式进行转换。这里仅仅介绍较为常用的RGB色彩空间。在RGB色彩空间中,存在R(red,红色)通道、G(green,绿色)通道和B(blue,蓝色)通道,共三个通道。每个色彩通道值的范围都在[0, 255]之间,我们用这三个色彩通道的组合表示颜色。

        以比较通俗的方式来解释就是,有三个油漆桶,分别装了红色、绿色、蓝色的油漆,我们分别从每个油漆桶中取容量为0~255个单位的不等量的油漆,将三种油漆混合就可以调配出一种新的颜色。三种油漆经过不同的组合,共可以调配出所有常见的256×256×256=16777216种颜色。表2展示了不同的RGB值所对应的颜色。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

表2 RGB值及颜色示例

        例如,对于图5左侧的彩色图像,可以理解为由右侧的R通道、G通道、B通道三个通道构成。其中,每一个通道都可以理解为一个独立的灰度图像。左侧彩色图像中的白色方块内的区域对应右侧三个通道的三个矩阵,白色方块左上角顶点的RGB值为(205,89,68)。

C++结合OpenCV:图像的基本表示方法,SpireCV,计算机视觉,python,图像处理

图5 图像数据展示

        因此,通常用一个三维数组来表示一幅RGB色彩空间的彩色图像。一般情况下,在RGB色彩空间中,图像通道的顺序是R→G→B,即第1个通道是R通道,第2个通道是G通道,第3个通道是B通道。需要特别注意的是,在OpenCV中,通道的顺序是B→G→R,即:

● 第1个通道保存B通道的信息。

● 第2个通道保存G通道的信息。

● 第3个通道保存R通道的信息。

        在图像处理过程中,可以根据需要对图像的通道顺序进行转换。除此以外,还可以根据需要对不同色彩空间的图像进行类型转换,例如,将灰度图像处理为二值图像,将彩色图像处理为灰度图像等。文章来源地址https://www.toymoban.com/news/detail-790335.html

到了这里,关于C++结合OpenCV:图像的基本表示方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • OpenCV实现图像噪声、去噪基本方法

    1、高斯噪声 指服从高斯分布(正态分布)的一类噪声,其产生的主要原因是由于相机在拍摄时视场较暗且亮度不均匀造成的,同时相机长时间工作使得温度过高也会引起高斯噪声,另外电路元器件白身噪声和互相影响也是造成高斯噪声的重要原因之一。 概率密度函数(PDF)

    2024年01月23日
    浏览(46)
  • C++计算机视觉库OpenCV在Visual Studio 2022的配置方法

      本文介绍在 Visual Studio 2022 中配置、编译 C++ 计算机视觉库 OpenCV 的方法。   首先,我们进行 OpenCV 库的下载与安装。作为一个开源的库,我们直接在其官方下载网站(https://opencv.org/releases/)中进行下载即可;如下图所示,我们首先选择需要下载的操作系统。   随后

    2024年02月16日
    浏览(60)
  • Opencv(C++)笔记--图像的resize方法

    原理分析:双线性插值实质上是使用两次单线性插值操作进行数据的处理,原理如下(字丑莫怪)(参考): 结果分析:双线性插值的结果更平滑,分析原理可知利用邻近的四个像素点进行处理,类似一个滤波的操作 ; ①高斯金字塔:用于向下采样; ②拉普拉斯金字塔:用

    2024年02月12日
    浏览(49)
  • Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换

    Python图像处理:使用OpenCV对图像进行HSV和RGB表示法的转换 在图像处理中,我们经常需要使用不同的颜色表示法来处理图像。在OpenCV中,我们可以使用HSV(色相、饱和度、亮度)表示法来替代标准的RGB(红、绿、蓝)表示法来处理图像。HSV表示法更为直观和易于使用,因为它将

    2024年02月06日
    浏览(77)
  • OpenCV函数应用:基于二值图像的三种孔洞填充方法记录(附python,C++代码)

    函数系列: OpenCV函数简记_第一章数字图像的基本概念(邻域,连通,色彩空间) OpenCV函数简记_第二章数字图像的基本操作(图像读写,图像像素获取,图像ROI获取,图像混合,图形绘制) OpenCV函数简记_第三章数字图像的滤波处理(方框,均值,高斯,中值和双边滤波) OpenC

    2024年02月05日
    浏览(54)
  • 计算机图形图像技术(OpenCV核心功能、图像变换与图像平滑处理)

    1、显示图像 ①功能:在指定窗口中显示图像。 ②参数: name 为窗口的名字; image 为待显示的图像。 ③说明:可显示彩色或灰度的字节图像和浮点数图像,彩色图像数据按BGR顺序存储。 2、读入图像 ①功能:从指定文件读入图像。 ②参数: filename 为图像文件名,支持BMP、

    2024年02月03日
    浏览(50)
  • ROS学习笔记15:ROS与OpenCV结合处理图像

      安装OpenCV sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv   ROS进行图像处理是依赖于OpenCV库的。ROS通过一个叫CvBridge的功能包,将获取的图像数据转换成OpenCV的格式,OpenCV处理之后,传回给ROS进行图像显示(应用),如下图:   我们使用ROS驱动获取摄像头数

    2024年02月05日
    浏览(43)
  • 【OpenCV】计算机视觉图像处理基础知识

    目录 前言 推荐 1、OpenCV礼帽操作和黑帽操作 2、Sobel算子理论基础及实际操作 3、Scharr算子简介及相关操作 4、Sobel算子和Scharr算子的比较 5、laplacian算子简介及相关操作 6、Canny边缘检测的原理 6.1 去噪 6.2 梯度运算 6.3 非极大值抑制 6.4 滞后阈值 7、Canny边缘检测的函数及使用

    2024年02月05日
    浏览(58)
  • 计算机毕业分享(含算法) opencv图像增强算法系统

    今天学长向大家分享一个毕业设计项目 毕业设计 opencv图像增强算法系统 项目运行效果: 毕业设计 基于机器视觉的图像增强 项目获取: https://gitee.com/sinonfin/algorithm-sharing 直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达

    2024年01月18日
    浏览(46)
  • 计算机视觉传统图像处理库opencv的使用

    人工智能领域的图像处理分支,整理了计算机视觉传统图像处理库opencv的使用网址链接。 opencv使用范围,主要用在计算机视觉、视频分析、机器学习、医学影像处理、自动驾驶、工业检测、游戏开发上。 1):opencv效果视频 opencv10个应用场景 - 知乎 2):opencv介绍 AI必备技能

    2024年02月09日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包