闻-鸡起舞 2024-08-09 12:52 采纳率: 0%
浏览 53

opencv读取tiff图像

利用opencv读取图像并显示,读取jpg或png等常用格式没问题,但读取tif图像老是失败,各位有知道原因的吗?下面附上代码,试了各种tif图像,有1个波段的、2个波段的、5个波段的,1个波段的能读取,5个的不行。

        //cvFileName为"C:\test.tif"
        cv::String cvFileName = fileName.toStdString();
        Mat srcImg = imread(cvFileName, 4);    
        if (srcImg.empty())
        {
            QMessageBox::information(this, "waring", "failed to read the image");
            return;
        }
        Mat imgShow;
        cvtColor(srcImg, imgShow, COLOR_BGR2RGB);
        QImage qImg = QImage((unsigned char*)(imgShow.data), imgShow.cols,
            imgShow.rows, imgShow.cols*imgShow.channels(), QImage::Format_RGB888);
        ui.imgLabel->setPixmap(QPixmap::fromImage(qImg.scaled(ui.imgLabel->size(), Qt::KeepAspectRatio)));        

  • 写回答

1条回答 默认 最新

  • ZXF_H 2024-08-09 17:48
    关注

    图像默认是3个通道彩色图像或者1个通道灰度图像,5个波段应该是5通道图像吧?是不是做遥感图像处理的?读多通道图像应该是指定读取参数为‌IMREAD_UNCHANGED就可以正常读取(代码第3行),另外读取的为多通道图像,代码第10行做BGR2RGB转换也会有问题吧?BGR与RGB都是3通道的

    评论

报告相同问题?

问题事件

  • 创建了问题 8月9日