• VS+Qt+C++ GDAL读取tif图像数据显示


    程序示例精选
    VS+Qt+C++ GDAL读取tif图像数据显示
    如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!

    前言

    这篇博客针对《VS+Qt+C++ GDAL读取tif图像数据显示》编写代码,代码整洁,规则,易读。 学习与应用推荐首选。


    运行结果


    文章目录

    一、所需工具软件
    二、使用步骤
           1. 主要代码
           2. 运行结果
    三、在线协助

    一、所需工具软件

           1. VS2019, Qt
           2. C++

    二、使用步骤

    代码如下(示例):
    #include "MainWindow.h"
    #include
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    using namespace std;
    using namespace cv;
    //gdal读取tiff图像波段,另存为jpg,通过opencv显示图像
    void MainWindow::On_tiff_File()
    {
        std::cout << "modelRun" << std::endl;
        GDALAllRegister();
        // 打开TIFF文件
        GDALDataset* dataset = (GDALDataset*)("dd.tiff", GA_ReadOnly);
        if (dataset == NULL) {
            std::cout << "打开文件失败!";
            return;
        }
        // 获取影像信息
        int width = dataset->GetRasterXSize();
        int height = dataset->GetRasterYSize();
        // 读取各波段数据并合成
        std::vector<cv::Mat> bands;
        for (int i = 1; i <= numBands; ++i) {
            GDALRasterBand* band = dataset->GetRasterBand(i);
            cv::Mat bandData(height, width, CV_8U);
            band->RasterIO(GF_Read, 0, 0, bandData.data, width, height, GDT_Byte, 0, 0);
            bands.push_back(bandData);
        }
        // 合成多波段数据(这里简单地将各波段叠加)
        cv::Mat compositeImage(height, width, CV_8U, cv::Scalar(0));
        for (const auto& band : bands) {
            compositeImage += band;
        }
        // 将图像保存为JPEG格式
        std::string imagePath = "output.jpg"; // 保存图像的路径
        cv::imwrite(imagePath, compositeImage);
    
        // 重新打开JPEG图像文件
        cv::Mat frame = cv::imread(imagePath, cv::IMREAD_COLOR);
        //cvtColor(frame, frame, COLOR_RGB2BGR); //
        // 设置窗口大小策略,允许窗口自由拉伸
        ui.label->setPixmap(QPixmap::fromImage(img));
        ui.label->setScaledContents(true);
        ui.label->update();
    
        // 释放资源
        GDALClose(dataset);
    }
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    运行结果

    三、在线协助:

    如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!

    1)远程安装运行环境,代码调试
    2)Visual Studio, Qt, C++, Python编程语言入门指导
    3)界面美化
    4)软件制作

    当前文章连接:https://blog.csdn.net/alicema1111/article/details/132666851
    个人博客主页https://blog.csdn.net/alicema1111?type=blog
    博主所有文章点这里:https://blog.csdn.net/alicema1111?type=blog

  • 相关阅读:
    GPT状态和原理 - 解密OpenAI模型训练
    【AI】行业消息精选和分析(23-11-20)
    知识工程复习之十八类重点问题(8-12)
    架构:应用架构的演进以及微服务架构的落地实践
    Ghidra Software Reverse Engineering Framework
    leetcode 830. 较大分组的位置、831. 隐藏个人信息、829. 连续整数求和、828. 统计子串中的唯一字符
    Linux下安装Nginx
    Linux下Socket编程
    Android系统启动流程概览
    2、MySql 更新语句执行流程
  • 原文地址:https://blog.csdn.net/alicema1111/article/details/133358804