数字图像处理(一)通道替换

题目:将RGB通道替换为BGR通道。
采用国际标准测试图像LenaRGB。
C++代码:

	cv::Mat rgbImage = cv::imread("LenaRGB.bmp");
    int width = rgbImage.cols;
    int height = rgbImage.rows;
    cv::Mat bgrImage = cv::Mat::zeros(height, width, CV_8UC3); //高,宽,类型
    for (int i = 0; i < height; i++)
    {
        for (int j = 0; j < width; j++)
        {
            bgrImage.at<cv::Vec3b>(i, j)[0] = rgbImage.at<cv::Vec3b>(i, j)[2];
            bgrImage.at<cv::Vec<uchar,3>>(i, j)[1] = rgbImage.at<cv::Vec3b>(i, j)[1];
            bgrImage.at<cv::Vec3b>(i, j)[2] = rgbImage.at<cv::Vec3b>(i, j)[0];
        }
    }

结果如图:在这里插入图片描述
opencv中的常见类型如下所示,在使用opencv时,我们要将常规类型转化为Opencv类型。每个类型可以有单通道、双通道、三通道。
这里的Vec类型其实就是vector(向量)。
在代码中可以看出cv::Vec3b等于cv::Vec<uchar,3>,这里只不过是typedef重定义了一下。
如果是灰度图像,我们可以采用image.at< uchar >(i, j)来获取该位置的像素,也可以将uchar替换为CV_8U。
在这里插入图片描述
参考链接:http://zhaoxuhui.top/blog/2019/08/24/OpenCV-Mat-Note.html
https://github.com/gzr2017/ImageProcessing100Wen

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字图像处理是一种将数字计算机技术应用于图像处理的技术。它涉及到对数字图像的获取、处理、分析和存储等方面。数字图像处理已经广泛应用于医学、工业、军事、信息等领域。 数字图像处理的主要技术包括图像预处理、图像增强、图像分割、图像识别和图像压缩等。其中,图像预处理包括图像去噪、图像去模糊和图像校正等;图像增强包括图像亮度增强、对比度增强和颜色增强等;图像分割包括基于阈值、基于边缘和基于区域等方法;图像识别包括基于特征提取和基于机器学习等方法;图像压缩包括无损压缩和有损压缩等。 数字图像处理的应用包括医学影像处理、机器视觉、航空航天、遥感、安全监控、数字媒体等。在医学影像处理方面,数字图像处理可以用于医学图像的诊断和治疗,例如CT扫描、MRI、X射线等;在机器视觉方面,数字图像处理可以用于自动检测、识别和分类等;在航空航天和遥感方面,数字图像处理可以用于地球观测和卫星图像处理等;在安全监控方面,数字图像处理可以用于视频监控和人脸识别等;在数字媒体方面,数字图像处理可以用于图像编辑、视频剪辑和游戏开发等。 总之,数字图像处理是一种重要的计算机视觉技术,它已经成为现代科技发展的重要支撑。随着计算机技术的不断进步和应用领域的不断扩展,数字图像处理的应用将会更加广泛和深入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值