C++openCV圖像的讀取、顯示、保存、信息


 OpenCV支持bmp、jpg、png、tiff等常用圖像格式的解析

#include <opencv2/opencv.hpp> //頭文件

int main()
{
    
    cv::Mat img = cv::imread("./tu/馬.jpg", cv::IMREAD_UNCHANGED); //讀入一張圖片
    /*
    參數2:圖像文件解析的方式,支持的方式有如下:
            cv::IMREAD_UNCHANGED    不對圖像文件進行任何轉換,直接讀取【讀入完整圖片,包括alpha通道(png有,jpg無)】
                IMREAD_GRAYSCALE    將任何圖像均轉換為灰度圖像(單通道)進行讀取
                IMREAD_COLOR        將任何圖像均轉為RGB彩色圖像(三通道)進行讀取【默認參數,讀入一副彩色圖片,忽略alpha通道】
                IMREAD_ANYDEPTH     如果不設置這個參數,16/32位圖像將會自動轉為8位圖像
                IMREAD_ANYCOLOR     將按照圖像文件設定的顏色格式進行圖像讀取
                IMREAD_LOAD_GDAL    調用gdal庫進行圖像文件讀取。(可以簡單地理解為讀取TIFF圖像文件)
    */ imshow("new", img); //在窗口中顯示載入的圖片 //參數1:窗口標題,如果找不到參數1的窗口就新建一個
    //imread讀入的圖像
    //imshow函數只支持8位灰度圖像、8位彩色圖像和32位灰度圖像(像素值范圍0-1)
    cv::waitKey(6000);
    img = cv::imread("./tu/貓.jpg", cv::IMREAD_UNCHANGED);
    imshow("new", img);
    cv::waitKey(6000); // 等待6000 ms
}

 

#include <opencv2/opencv.hpp> 
int main()
{
    
    cv::Mat img = cv::imread("./tu/馬.jpg", cv::IMREAD_UNCHANGED); 
    int w = img.cols; //返回圖片的寬度
    int h = img.rows; //返回圖片的高度
    unsigned char* p = img.data; //數據緩存區指針
    unsigned int x = (unsigned int)p;

    x = img.channels(); //返回通道數
 x = img.elemSize();//返回的是一個像素占用的字節數
 x = img.elemSize() / img.channels() * 8; //深度

    std::cout  << x << std::endl;
            
    cv::waitKey(6000);
    
}

 

cv::Mat img = cv::imread("./tu/馬.jpg", cv::IMREAD_UNCHANGED); 

    std::vector<int> compression_params;
    compression_params.push_back(cv::IMWRITE_JPEG_QUALITY); 
    compression_params.push_back(50);

    cv::imwrite("my.jpg", img, compression_params); //保存圖片 //參數1:文件名
    //參數2:Mat類型的矩陣
    /*
    參數3:[可選]表示為特定格式保存的參數編碼,std::vector<int>類型
    看:https://blog.csdn.net/mars_xiaolei/article/details/62233900?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase 
    */

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM