OpenCV01_加载、修改、保存图像

来源:互联网 发布:常用的搜索排序算法 编辑:程序博客网 时间:2024/06/05 07:01

加载、修改、保存图像

  • 加载图像
    • imread
      • 两个参数
      • 1,图像的文件名
      • 2,加载图像的类型flag(第二个参数),默认为1,RGB
        • imread_unchanged(flag<0),加载原图,不做任何改变
        • imread_grayscale(flag=0),加载灰度图像
        • imread_color(flag>0),加载RGB图像
  • 修改图像
    • cvtColor
      • 改变它的颜色空间,从一个颜色空间转换到另外一个颜色空间。
      • 颜色空间:我们肉眼所看到的颜色都是由单色混合而成的,RGB三种颜色调和的时候可以调出上百万种颜色(256*256*256)
      • 从一个色彩空间转换成另一个色彩空间通过此API实现
        • 原因:在RGB色彩空间,亮度不是一个单一的通道,转换到其它色彩空间,亮度可以表示亮度、饱和度、色泽度等等,单一的通道表示饱和度,调节图像的饱和度就在这个通道上调节就行,调节图像的其它分别在其对应的通道上调整,对于我们的处理更加方便,处理完之后再进行反变换回RGB空间即可
      • cvtCorlor(image,gray_image,COLOR_BGR2GRAY)三个参数
        • 1,原图像
        • 2,转换后输出的图像
        • 3,从哪个色彩空间转换到哪个色彩空间去的
          • CV_BGR2HLS(HLS,H色调,L亮度,S饱和度)
          • 需要调整亮度和饱和度只需调整后面两个通道就行,有好多东西可以控制,调完之后反转换到RGB色彩空间
  • 显示图像
    • namedWindows
      • 创建opencv窗口,由opencv自动创建与释放,无需销毁
      • namedWindows(“Windows Title”,WINDOW_AUTOSIZE)
      • WINDOW_AUTOSIZE,自动根据图像大小显示窗口,不能人为改变窗口大小
      • WINDOWS_NORMAL,允许修改窗口大小
    • imshow
      • 根据窗口名称显示图像到指定窗口
      • 第一个参数是窗口名称,第二个参数是Mat对象
  • 保存图像
    • imwrite
      • 保存图像到指定路径
      • 只有8bit,16bit的png,jpg,tiff文件格式而且是单通道或者三通道的BGR(通道顺序)图像才可以通过这种方式保存
      • 保存png格式的时候可以保存透明通道的图片
      • 可以指定压缩参数
int main(int argc, char** argv) {    //加载图像    Mat src = imread("D:\\VS2015\\images\\彩色lena图像.BMP", -1);    //判断数据有没有加载进来    if (src.empty()) {        printf("Could not load image...");        return -1;    }    //显示图像    namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);    imshow("test opencv setup", src);    namedWindow("output windows", CV_WINDOW_AUTOSIZE);    Mat output_image;    //变换图像空间    cvtColor(src, output_image, CV_BGR2HLS);    imshow("output windows", output_image);    //保存图像    imwrite("hlstestLena.png", output_image);    waitKey(0);    return 0;}
0 0
原创粉丝点击