【OpenCV学习笔记之一】图像加载,修改及保存

时间:2022-05-07
本文章向大家介绍【OpenCV学习笔记之一】图像加载,修改及保存,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

加载图像(用cv::imread) imread功能是加载图像文件成为一个Mat对象 其中第一个参数表示图像文件名称 第二个参数 表示加载的图像是什么类型 支持常见的三个参数值 IMREAD_UNCHANGE(<0)表示加载原图 不做任何改变 IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来 IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来 注意:OpenCV支持jpg png tiff等常见格式图像文件加载

显示图像(cv::namedWindow与cv::imshow) namedWindow功能是创建一个OpenCV窗口 它是由OpenCV自动创建与释放 你无需去销毁它 常见用法:nameWindow("Window Title",WINDOW_AUTOSIZE) WINDOW_AUTOSIZE会自动根据图像大小 显示窗口大小 不能人为的改变窗口大小 WINDOW_NORMAL跟QT集成的时候会使用 允许修改窗口大小 imshow根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二个参数是Mat对象

修改图像(cv::cvtColor) cvtColor的功能是把图像从一个彩色空间转换到另外一个色彩空间 有三个参数 第一个参数表示源图像 第二个参数表示色彩空间转换之后的图像 第三个参数表示源和目标色彩空间 如:COLOR_BGR2HLS COLOR_BGR2GRAY等 cvColor(image,gray_image,COLOR_BGR2GRAY)

保存图像(cv::imwrite) 保存图像文件到指定目录路径 只有8位 16位的png jpg tiff文件格式而且是单通道或者三通道的BRG的图像才可以通过这种方式保存 保存png格式的时候 可以保存透明通道的图片 可以指定压缩参数

参考程序如下:

#include <opencv2opencv.hpp>
#include <math.h>
#include <iostream>
using namespace cv;
int main(int argc, char const *argv[])
{
    Mat src = imread("../1.png");
    if(src.empty()){
        printf("Could not load imagen");
        return -1;
    }
    namedWindow("opencv setup demo",CV_WINDOW_AUTOSIZE);
    imshow("opencv setup demo",src);
    namedWindow("output windows",CV_WINDOW_AUTOSIZE);
    Mat output_image;
    cvtColor(src,output_image,CV_BGR2HSV);
    imshow("output windows",output_image);
    imwrite("D:/xxx.jpg",output_image);
    waitKey(0);
    return 0;
}