ZBLOG

将 3 通道的 cv::Mat 转为单通道

要将一个 3 通道的 cv::Mat 转换为单通道,可以使用 OpenCV 中的 cv::cvtColor 函数。下面是一个示例代码,演示如何实现这一点:

#include <opencv2/opencv.hpp>

int main() {
    // 读取一张彩色图片 (3通道)
    cv::Mat img = cv::imread("path_to_your_image.jpg");

    // 检查图片是否成功加载
    if (img.empty()) {
        std::cerr << "Error: Unable to open image!" << std::endl;
        return -1;
    }

    // 创建一个单通道图像
    cv::Mat grayImg;

    // 将3通道图像转换为单通道(灰度图)
    cv::cvtColor(img, grayImg, cv::COLOR_BGR2GRAY);

    // 显示结果
    cv::imshow("Original Image", img);
    cv::imshow("Gray Image", grayImg);
    
    // 等待按键
    cv::waitKey(0);

    return 0;
}

说明:

  • 使用 cv::imread 函数读取输入图像。
  • 使用 cv::cvtColor 函数进行颜色空间转换,其中 cv::COLOR_BGR2GRAY 表示从 BGR 到灰度的转换。
  • 最后通过 cv::imshow 显示原始和转换后的图像。

记得替换 "path_to_your_image.jpg" 为你实际的图片路径。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22995

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?