OpenCV速成(3)——基本的图像处理(上)

0x00.本节课你将学到

0x01.使用OpenCV缩放图像

opencv封装了一个很好用的函数,叫resize,用于缩放图像,使用如下

resize(原图, 存放处理后图片的Mat, 尺寸, 宽度缩放比例, 高度缩放比例, 缩放方式)
resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR );

其中dsize是cv::Size类型的,构造方法为cv::Size(列数, 行数)

fx和fy 与 dsize的关系是:当dsize为Size(0,0)的时候,fx,fy才会起作用

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	Mat lena, small, big;
	lena = imread("lena.jpg");

	//把原图缩小到原来的1/4存入small
	resize(lena, small, Size(), 0.5, 0.5, INTER_LINEAR);
	//把原图放大为原来的4倍,存入big
	resize(lena, big, Size(lena.cols * 2, lena.rows * 2), 0, 0, INTER_LINEAR);

	imshow("big", big);
	imshow("lena", lena);
	imshow("small", small);
	waitKey(0);
	return 0;
}

运行结果如下

0x02.使用OpenCV裁剪图像

使用Opencv裁剪图像,我们需要用到一个类,叫Rect,构造函数如下

Rect(int x, int y, int width, int height);

x,y为矩形左上角的坐标,width和height为矩形的宽和高

补充一句,在OpenCV和图形界面开发中,左上角为原点(0,0),x轴从左往右,y轴从上到下

有了这样一个矩形,我们就可以切割图像了

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	Mat lena, cut;
	lena = imread("lena.jpg");

	Rect cut_lena(lena.cols / 3, lena.rows / 3, lena.cols / 3, lena.rows / 3);
	//在原图宽和高都为1/3的位置切割,且切割的宽高为原来的1/3
	//就像是九宫格,切下中间的一格
	cut = lena(cut_lena);

	imshow("cut", cut);
	waitKey(0);
	return 0;
}

运行结果如下

0x03.使用OpenCV模糊图像

OpenCV常使用高斯滤波来模糊图像,函数如下

GaussianBlur(原图, 处理后存放的Mat, 高斯核, x方向上的标准差, y方向上的标准差)

一般两个标准差都置0,修改Size即可,代码如下

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

int main() 
{
	Mat lena, gauss;
	lena = imread("lena.jpg");

	GaussianBlur(lena, gauss, Size(13, 13), 0, 0);
	//模糊lena,高斯核为13*13,模糊的结果存放到gauss中

	imshow("lena", lena);
	imshow("gauss", gauss);

	waitKey(0);
	return 0;
}

运行结果如下

还是挺明显的哈
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇