OpenCV01_加载、修改、保存图像

加载、修改、保存图像

  • 加载图像
    • 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;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值