(一)opencv入门之图像的基本操作——图像的读取、保存和图像缩放的操作

本人是零基础的小白,现在从零开始学习opencv,这是学习的一些简单的笔记,如有错误请指正。
编译环境:vs2017
Windows x64

入门opencv时,必须要了解几个常用的头文件及其它们的作用。在写代码头文件出错时,若不知道头文件的作用,就很难去处理红线错误。
opencv几个常用的头文件:

#include <core.hpp>   //包含了opencv的基本数据结构,图像数组的操作相关函数
#include <highgui.hpp>  //图像交互界面,视频的捕捉和提取
#include <imgproc.hpp>  //图像的变换,滤波直方图,图像形状的描述
#include <video.hpp>  //主要在调用摄像头的时候使用

一、图像的读取和输出:
在opencv中一般使用imread来读取图片,那么imread函数的使用格式如下:
imread(“图片的路径”,图片的加载方式)
备注:
1、图片的路径读取方式有相对路径和绝对路径(建议使用绝对路径)
相对路径使用时一般将要处理的图片放在工程目录里面;
绝对路径使用格式请注意:D:\Visual Studio project\ConsoleApplication2\人像.jpg 要将图片复制的路径“\”修改为“\" 或者将“\”用”/“代替也是ok的;

2、图片的加载方式有三种:
IMREAD_COLOR:读取一副彩色图片,图片的透明度会被忽略,默认为该值,实际取值为1;
IMREAD_GRAYSCALE:以灰度模式读取一张图片,实际取值为0
IMREAD_UNCHANGED:加载一副彩色图像,透明度不会被忽略

案例实现:读取一张“图片”

#include "pch.h"
#include <core.hpp>   //包含了opencv的基本数据结构
#include <highgui.hpp>  //图像交互界面
#include <imgproc.hpp>  //图像的变换,滤波直方图

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("D:\\Visual Studio project\\ConsoleApplication2\\风景.jpg"); 
	imshow("风景",img);
	waitKey(0);
	system("pause");
}

输出结果:
在这里插入图片描述
二、图像的缩放:
一般的图像文件格式使用的是Unsiged 8bits,Mat矩阵对应的参数类型就是:
CV_8UC1, CV_8UC2, CV_8UC3
*最后边的1.、2、3表示通道数,比如RGB3通道就用CV_8UC3

图像的缩放一般使用resize函数,他可以将原始图像精确地转化为指定尺寸的目标图像。

方法一:确定图像尺寸的缩放

#include "pch.h"
#include <iostream>  //通常包含cin输入内容和cout输出内容
#include <core.hpp>   //包含了opencv的基本数据结构
#include <highgui.hpp>  //图像交互界面
#include <imgproc.hpp>  //图像的变换,滤波直方图

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("D:\\Visual Studio project\\ConsoleApplication2\\风景.jpg"); //mat是用来存储和释放图片的像素
	imshow("原始图像", img);

	Mat dst =Mat::zeros(512,512,CV_8UC3);   //8位无符号3通道
	resize(img, dst, dst.size());
	imshow("图像缩放", dst);
	imwrite(“D:\\Visual Studio project\\ConsoleApplication2\\缩小后风景.jpg”)
	
	waitKey(0);

}

输出结果:
在这里插入图片描述
方法二:按照比例进行图像的缩放

#include "pch.h"
#include <core.hpp>   //包含了opencv的基本数据结构
#include <highgui.hpp>  //图像交互界面
#include <imgproc.hpp>  //图像的变换,滤波直方图

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("D:\\Visual Studio project\\ConsoleApplication2\\风景.jpg");
	imshow("原始图", img);
    Mat dst;
	resize(img, dst, Size(), 0.3, 0.3);//图像的长宽都变为原来的0.3倍
	imshow("缩放图", dst);
	waitKey(0);
	system("pause");
}

输出结果:
在这里插入图片描述
参考文章:
1.https://www.jianshu.com/p/290d44ac5d0c
2.https://blog.csdn.net/WWWQ2386466490/article/details/79925991

发布了8 篇原创文章 · 获赞 12 · 访问量 791

猜你喜欢

转载自blog.csdn.net/ZJ_____W/article/details/102894644