OpenCV个人笔记

一、大体展示如何获取一张图片并显示在窗口上

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


using namespace std;
using namespace cv;

int main() {
	Mat src = imread("D:\\timg (1).jpg", IMREAD_GRAYSCALE);//读取进来的数据以矩阵的形势,第二个参数代表显示一张灰度图像。
	if (src.empty())
	{
		printf("could not load image");//如果图片不存在 将无法读取,打印到终端。
		return -1;
	}
	//超过屏幕的图像无法显示时候调用此函数。
	namedWindow("输入窗口", WINDOW_FREERATIO);//创建了一个新窗口,参数1表示名称,第二个参数代表一个自由的比例
	imshow("输入窗口", src);//表示显示在新创建的输入窗口上,第一个参数表示窗口名称,src表示数据对象Mat 
	waitKey(0);//执行到这句,程序阻塞。参数表示延时时间。单位ms
	destroyAllWindows();//销毁前面创建的显示窗口
	return 0;


}

二、什么是图像

图像在屏幕上的显示依靠的是像素,像素越多越清晰

单纯的像素绘制为二进制图像

增加更多细节

 灰度图像:

 对于彩色图像我们有三个灰度(红色 绿色 蓝色)

rgb将这些混合起来

 三、 加载图像视频和网络摄像头

1.我们需要的三个头文件

#include<opencv2/highgui.hpp>;
#include<opencv2/imgcodecs.hpp>;
#include<opencv2/imgproc.hpp>;

常用的从文件加载图片的imread,保存图片到文件的imwrite,从内存加载图片或者将图片编码后放到内存缓冲区的imencode/imdecode都在这个头文件中.

 2.导入图片数据 并显示图片

 (mat本质上为矩阵,用于处理图像)

 3.导入视频

ps:视频相当大量于按帧分布的图片,可以用while循环放到mat来读取

读取视频数据

 (路径建议不要有中文,也不要太长)

如果想慢一点可以自己调节等待的毫秒waitKey(20),但是会有错误,因为没有更多的图像显示;

#include <iostream>
#include<opencv2/highgui.hpp>;
#include<opencv2/imgcodecs.hpp>;
#include<opencv2/imgproc.hpp>;

using namespace std;
using namespace cv;

int main() {
	VideoCapture cap("D:/1 (2).mp4");
	Mat imag;
	while (true) {
		cap.read(imag);

		imshow("Image", imag);
		waitKey(1);
	}



}

3.摄像头

videocapture 代表要调用的摄像头的索引,如果只有一个摄像头就设置索引为0就可以了,

 四、基本功能

1.将图像转换为灰度

#include <iostream>
#include<opencv2/highgui.hpp>;
#include<opencv2/imgcodecs.hpp>;
#include<opencv2/imgproc.hpp>;

using namespace std;
using namespace cv;

int main() {
	Mat img=imread("D:/aaaaaa.jpg");
	Mat imgG;
    //执行灰度的操作
	cvtColor(img, imgG, COLOR_BGR2GRAY);
	imshow("Image", img);
	imshow("imgG", imgG);
	waitKey(0);
}

 2.高斯模糊

#include <iostream>
#include<opencv2/highgui.hpp>;
#include<opencv2/imgcodecs.hpp>;
#include<opencv2/imgproc.hpp>;

using namespace std;
using namespace cv;

int main() {
	Mat img=imread("D:/aaaaaa.jp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值