opencv——图像的加载、修改、保存

加载图像

cv::imread

  • imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称
  • 第二个参数,表示加载的图像是什么类型,支持常见的三个参数值
  • IMREAD_UNCHANGED
    (flags = -1) 解码得到的方式读入图像(加载原图),不做任何改变
  • IMREAD_GRAYSCALE
    (flags = 0) 按单通道的方式读入图像(灰度图像)
  • IMREAD_COLOR
    (flags = 1)按三通道方式读入图像(RGB图像)

opencv的处理中,一般都是对RGB格式的图像进行处理
用得比较多的就是IMREAD_COLOR

代码演示

#include<iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  

using namespace cv;//命名空间

int main()
{
	// 读入一张图片  
	Mat img = imread("C:/Users/86176/Pictures/pics/lena(1).tiff"1);//参数
	// 创建一个名为 "pic"窗口  
	namedWindow("pic");
	// 在窗口中显示游戏原画  
	imshow("pic", img);
	// 等待6000 ms后窗口自动关闭  
	waitKey(6000);
}

函数的原型是: cv::imread
所以再编写代码前需要定义命名空间
flag = 1
在这里插入图片描述

flag= 0
在这里插入图片描述

显示图像

cv::namedWindos 与cv::imshow
早期的opencv是需要销毁窗口的,现在的不用,能少写一行就少些一行

namedWindow

  • WINDOW_NORMAL 用户可以改变窗口的大小,QT集成的时候会用
  • WINDOW_AUTOSIZE 窗口自动调整以适应所显示的图像,不能人为修改窗口大小
  • WINDOW_OPENGL 窗口创建的时候支持OpenGL

imshow

  • 根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二参数是Mat对象

修改图像

cv::cvtColor
原型如下

void cv::cvtColor(
      cv::InputArray src, // 源图像
      cv::OutputArray dst, // 色彩空间转换后的图像
      int code, // 颜色映射码
      int dstCn = 0 // 输出的通道数 (0='automatic')
     );

第三个参数的色彩映射可以根据需要查看手册
第三个参数可以不写,会自动设置

保存图像

cv::imwrite

  • 第一个参数是文件的路径
  • 第二个参数是指定文件
  • 第三个参数是压缩参数,用于控制图片指令,也可以不设置
    若要使用的话,就需要查看参数手册

代码演示

#include<iostream>  
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>  
#include <opencv2/opencv.hpp>

using namespace cv;


int main()
{
	// 读入图片  
	Mat img = imread("C:\\Users\\86176\\Pictures\\pics\\lena(1).tiff");

	namedWindow("src pic", CV_WINDOW_AUTOSIZE);
	imshow("src pic", img);

	Mat output_img;
	cvtColor(img, output_img, CV_RGB2HSV);//cvt转化的HSV图
	namedWindow("output", CV_WINDOW_AUTOSIZE);       
	imshow("output", output_img);

	imwrite("D:\\output_img", output_img);
	waitKey(0);
	return 0;
} 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值