<LearnOpenCV(1) C++>图片读写

图片读写与展示

imread()

CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
  • filename 图片绝对\相对路径
  • flags 读取方式

imread中可选的flags

enum ImreadModes { //⭐标常用
       IMREAD_UNCHANGED            = -1, //保留alpha通道 ⭐
       IMREAD_GRAYSCALE            = 0,  //按灰度图像提取 ⭐
       IMREAD_COLOR                = 1,  //彩色 ⭐
       IMREAD_ANYDEPTH             = 2,  //深度图(16\32bit)如果不是深度图就8bit ⭐
       IMREAD_ANYCOLOR             = 4,  //彩色 ⭐
       IMREAD_LOAD_GDAL            = 8,  //没用过
       IMREAD_REDUCED_GRAYSCALE_2  = 16, //砍半加载灰度图
       IMREAD_REDUCED_COLOR_2      = 17, //砍半加载彩色图
       IMREAD_REDUCED_GRAYSCALE_4  = 32, //四分之一加载灰度图
       IMREAD_REDUCED_COLOR_4      = 33, //四分之一加载彩色图
       IMREAD_REDUCED_GRAYSCALE_8  = 64, //八分之一加载灰度图
       IMREAD_REDUCED_COLOR_8      = 65, //八分之一加载彩色图
       IMREAD_IGNORE_ORIENTATION   = 128 //没用过
     };

imwrite()

CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,
              const std::vector<int>& params = std::vector<int>());
  • filename 图片绝对\相对路径
  • img 图片
  • params 保存选项

namedWindow()

CV_EXPORTS_W void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
  • winname 定义窗口名
  • flags 窗口属性

namedWindow中可选的flags

enum WindowFlags {
       WINDOW_NORMAL     = 0x00000000, //任意大小
       WINDOW_AUTOSIZE   = 0x00000001, //固定大小固定尺寸
       WINDOW_OPENGL     = 0x00001000, //OpenGL支持

       WINDOW_FULLSCREEN = 1,          //全屏(骗人).
       WINDOW_FREERATIO  = 0x00000100, //扩展
       WINDOW_KEEPRATIO  = 0x00000000, //固定比例(并不固定)
       WINDOW_GUI_EXPANDED=0x00000000, //工具栏和状态栏(并没有但可以加)
       WINDOW_GUI_NORMAL = 0x00000010, //!< old fashious way 经典(不太经典)
    };

cvtColor()

CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
  • src 输入图像
  • dst 转换结果
  • code 转换方式(有很多选择,可以自己看枚举)

简单代码

# include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>

using namespace std;
using namespace cv;


int main()
{
	Mat src = imread("2.jpg",IMREAD_COLOR);
	Mat output_img;

	if (src.empty()) return -1;
	
	cvtColor(src, output_img, COLOR_BGR2GRAY);
	
	namedWindow("load&save demo", WINDOW_AUTOSIZE);
	namedWindow("Out put img", WINDOW_GUI_NORMAL);
	imshow("load&save demo", src);
	imshow("Out put img", output_img);
	waitKey(0);

	imwrite("2.tif", src);
	return 0;
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wdmcs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值