opencv彩色图像转灰度图原理

opencv彩色图像转灰度图原理

在OpenCV中,将彩色图像转换为灰度图像的基本原理是使用颜色空间转换的方法。具体来说,OpenCV提供了cvtColor函数,它可以将图像从一个颜色空间转换到另一个。

对于从BGR颜色空间(OpenCV中的默认彩色图像格式)转换到灰度,通常采用以下公式:

灰度 = 0.299 * 红色 + 0.587 * 绿色 + 0.114 * 蓝色

这个转换是根据人类视觉系统对不同颜色的敏感度来加权平均RGB通道的值的。

有三种方式可以将彩色图像转成灰度图
1、直接imread("1.jpg" , 0);直接读取灰度图像
2、读取彩色图像然后 灰度 = 0.299 * 红色 + 0.587 * 绿色 + 0.114 * 蓝色进行转换
3、调用cvtColor函数cvtColor(srcImg, imgShow, COLOR_BGR2GRAY);

cpp 复制代码
void MainWindow::on_pushButton_clicked()
{
    Mat srcImg = imread("D:\\1.jpg");
    if(srcImg.empty())
    {
        QMessageBox::information(this,"警告","图片读取失败,请检查图片路径!");
        return;
    }
    Mat imgShow ;
    cvtColor(srcImg, imgShow, COLOR_BGR2GRAY); // 图像格式转换
    QImage qImg = QImage((unsigned char*)(imgShow.data), imgShow.cols,
                         imgShow.rows, imgShow.cols*imgShow.channels(), QImage::Format_RGB888);
    ui->label->setPixmap(QPixmap::fromImage(qImg.scaled(ui->label->size(), Qt::KeepAspectRatio)));
    cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE);
    cv::imshow("Display window", imgShow);
    cv::waitKey(0);

}


void MainWindow::on_pushButton_3_clicked()
{
    Mat image = imread("D:\\1.jpg" , 0);
    if (image.empty()) {
        std::cout << "Could not open or find the image" << std::endl;
        return ;
    }
    qDebug()<<image.channels()<<endl;
    cv::namedWindow("Display window1", cv::WINDOW_AUTOSIZE);
    cv::imshow("Display window1", image);
    cv::waitKey(0);
}
相关推荐
Slow菜鸟5 小时前
AI学习篇(三) | AI效率工具指南(2026年)
人工智能·学习
北京软秦科技有限公司5 小时前
AI审核如何助力合规取证?IACheck打造环境检测报告电子存证与法律风险防控新路径
大数据·人工智能
qq_359716236 小时前
openpi使用过程中相关问题
人工智能·深度学习·机器学习
minhuan6 小时前
医疗AI智能体:从数据到关怀人文设计:告别冰冷精准,构建有温度的诊疗交互.131
人工智能·ai智能体·智能体的人文设计·医疗ai人文设计·构建医疗ai智能体
Promise微笑7 小时前
驾驭AI引用:Geo优化中的内容评分机制与实战策略深度解析
人工智能
ai生成式引擎优化技术7 小时前
全球唯一四元结构底层架构问世:TSPR-WEB-LLM-HIC v2.0 终结大模型投毒与幻觉的终极技术范式
人工智能
听你说327 小时前
伊萨推出 ROBBI 360 协作机器人焊接工作站 简化自动化焊接部署流程
人工智能·机器人·自动化
weixin_408099677 小时前
【实战对比】在线 OCR 识别 vs OCR API 接口:从个人工具到系统集成该怎么选?
图像处理·人工智能·后端·ocr·api·图片文字识别·文字识别ocr
罗西的思考8 小时前
【OpenClaw】通过Nanobot源码学习架构---(2)外层控制逻辑
人工智能·机器学习