当前位置 : 主页 > 编程语言 > c++ >

opencv C++图像读取

来源:互联网 收集:自由互联 发布时间:2021-06-23
int main(){ cv::Mat img =cv::imread( " /home/nan/图片/highdeepth/starry.jpg " ,cv::IMREAD_REDUCED_COLOR_8); // imread( const String filename, int flags = IMREAD_COLOR ); if (img.empty()) return - 1 ; cv::imshow( " BGR " ,img); std::vector
int main(){
    cv::Mat img=cv::imread("/home/nan/图片/highdeepth/starry.jpg",cv::IMREAD_REDUCED_COLOR_8);
     // imread( const String& filename, int flags = IMREAD_COLOR );
    if(img.empty()) return -1;
    cv::imshow("BGR",img);
    std::vector<cv::Mat> planes;
    cv::split(img,planes);
    cv::imshow("B",planes[0]);
    cv::imshow("G",planes[1]);
    cv::imshow("R",planes[2]);
    cv::imshow("BGR",img);

    img=cv::imread("/home/nan/图片/highdeepth/starry.jpg",cv::IMREAD_REDUCED_GRAYSCALE_8);
    cv::split(img,planes);  // 灰度图只能分离出一个通道
    cv::imshow("Gray",planes[0]);
    cv::waitKey(0);
    return 0;
}

注意:如果图像像素过大,并且要读出全部图像的话可以使用尺寸缩减 如:cv::IMREAD_REDUCED_COLOR_8。

flags包括以下内容:

    IMREAD_UNCHANGED            = -1, //!< If set, return the loaded image as is (with alpha channel, otherwise it gets cropped).
       IMREAD_GRAYSCALE            = 0,  //!< If set, always convert image to the single channel grayscale image.
       IMREAD_COLOR                = 1,  //!< If set, always convert image to the 3 channel BGR color image.
       IMREAD_ANYDEPTH             = 2,  //!< If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.
       IMREAD_ANYCOLOR             = 4,  //!< If set, the image is read in any possible color format.
       IMREAD_LOAD_GDAL            = 8,  //!< If set, use the gdal driver for loading the image.
       IMREAD_REDUCED_GRAYSCALE_2  = 16, //!< If set, always convert image to the single channel grayscale image and the image size reduced 1/2.
       IMREAD_REDUCED_COLOR_2      = 17, //!< If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2.
       IMREAD_REDUCED_GRAYSCALE_4  = 32, //!< If set, always convert image to the single channel grayscale image and the image size reduced 1/4.
       IMREAD_REDUCED_COLOR_4      = 33, //!< If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4.
       IMREAD_REDUCED_GRAYSCALE_8  = 64, //!< If set, always convert image to the single channel grayscale image and the image size reduced 1/8.
       IMREAD_REDUCED_COLOR_8      = 65, //!< If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8.
       IMREAD_IGNORE_ORIENTATION   = 128 //!< If set, do not rotate the image according to EXIF‘s orientation flag.
网友评论