OpenCV
文章平均质量分 75
Kukeoo
记录自己的学习生涯
展开
-
计算机视觉 OpenCV【降噪:高斯模糊原理】
目录一、高斯模糊简介和原理1.1 简介1.2 原理二、数学原理2.1 卷积2.2 高斯卷积内核构建2.2.1 计算高斯矩阵2.2.2 计算高斯矩阵之和2.2.3 归一化一、高斯模糊简介和原理1.1 简介高斯模糊,也叫高斯平滑,其作用是使图像变得模糊且平滑,通常用它来减少图像噪声以及降低细节层次。平滑也称模糊, 是一项简单且使用频率很高的图像处理方法。平滑处理的用途有很多, 比如减少噪声的功用。平滑处理时需要用到一个滤波器。高斯滤波是一...原创 2021-05-07 23:15:27 · 4374 阅读 · 1 评论 -
计算机视觉 OpenCV【灰度原理和公式】
目录一、灰度原理1.1 图像的存储与像素1.1.1 像素与分辨率1.1.2 物理原理1.2 RGB图像1.3 灰度图像二、RGB转灰度公式一、灰度原理1.1 图像的存储与像素1.1.1 像素与分辨率像素是影像显示的基本单位,是一个具有明确位置和颜色值的方格。分辨率指的是一个显示系统对图像细节的分辨能力,通常以长边像素个数乘以宽边像素个数来表示。目前有多种分辨率,如VGA,HD,4K等。以VGA为例,VGA(VideoGraphicsArray)是I..原创 2021-05-06 20:54:56 · 5561 阅读 · 0 评论 -
计算机视觉 OpenCV【八:应用之人脸识别】
一、识别原理二、步骤三、代码原创 2021-05-01 21:10:23 · 2125 阅读 · 11 评论 -
计算机视觉 OpenCV【七:应用之形状与轮廓检测】
一、什么是形状与轮廓检测给定一张图片:OpenCV能帮我们使用计算机来识别这些图像,首先可以勾勒出他们的轮廓,其次还可以识别哪些是三角形,哪些是圆形,哪些是矩形。这就是形状、轮廓检测的功能。二、预处理形状与轮廓检测首先需要进行预处理,目的是找到图像的边缘,然后再找到图像的轮廓/轮廓点。步骤如下:1.转为灰度图像2.添加高斯模糊3.进行坎尼边缘检测4.进行膨胀操作,使边缘间没有缝隙,称为完整的封闭图原图:灰度:高斯模糊:坎尼边缘检测:原创 2021-05-01 12:37:57 · 7351 阅读 · 6 评论 -
计算机视觉 OpenCV【六:应用之颜色检测】
一、什么是颜色检测二、HSV图像类型介绍三、二值化原创 2021-04-29 21:20:03 · 16150 阅读 · 2 评论 -
计算机视觉 OpenCV【五:应用之透视变换】
目录一、什么是透视变换?例子定义二、实现代码一、什么是透视变换?例子现在你有一副牌,从你的视角看过去,这四张牌是这样的:现在我们想得到他们的俯视图,也就是把牌立起来,变成这样:这就是透视变换做的事。定义透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。二、实现代码#include <opencv2/op...原创 2021-04-28 22:14:20 · 1751 阅读 · 10 评论 -
计算机视觉 OpenCV【四:绘制与文本】
目录一、绘制画布以及定义画布颜色绘制方法代码效果二、绘制圆绘制方法效果增加厚度填充三、绘制矩形绘制方法效果四、绘制线绘制方法效果五、写文本写文本方法效果一、绘制画布以及定义画布颜色绘制方法对于一个Mat类的对象,我们有其构造函数:创建行数为 rows,列数为 col,类型为 type 的图像,并将所有元素初始化为值 sMat::Mat(int rows, int cols, int type, const Sc.原创 2021-04-28 11:08:15 · 505 阅读 · 0 评论 -
计算机视觉 OpenCV【三:调整大小与裁剪】
目录一、调整大小二、裁剪一、调整大小函数:resize(src,dest,Size(width,high);其中size的参数为宽×高。首先,我们可以先输出一下原图的大小:cout << img.size() << endl;然后,我们再重新定义图片的大小:resize(img, imgResize,Size(640,480));代码: Mat imgResize; //cout << img.size...原创 2021-04-27 21:50:30 · 1085 阅读 · 1 评论 -
计算机视觉 OpenCV【二:扩张与侵蚀】
一、dilate:扩张dilate函数使用像素领域内的局部极大运算符来膨胀一张图片,从src输入,由dest输出。第三个参数为膨胀操作的内核。如果为NULL,则默认表示使用参考点位于中心3×3的核。 //扩张图像 Mat imgDil; //写扩张内核 Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3)); //进行扩张 dilate(imgCanny, imgDil,kernel); //展示 imshow("Im原创 2021-04-27 20:58:22 · 1261 阅读 · 0 评论 -
计算机视觉 OpenCV【二:灰度、高斯模糊、边缘检测】
一、彩色图像转灰度Opencv提供了一个方法,可以使彩色图像变为灰度图像。函数名:cvtColor(src,dest,way);src表示初始的mat对象;dest表示转换后的mat对象;way表示以何种方式转换。举个例子:int main(){ //定义路径 string path = "Resources//test.png"; //Mat:opencv引入的矩阵数据类型,处理所有图像 Mat img = imread(path); //创建一个新的mat对原创 2021-04-26 23:30:22 · 3734 阅读 · 10 评论 -
计算机视觉 OpenCV【一:读图片、视频与网络摄像机】
目录一、头文件二、读图片三、读视频四、读网络摄像机一、头文件我们在使用opencv进行读图片、视频与网络摄像机时,需要三个头文件:#include <opencv2/imgcodecs/imgcodecs.hpp>常用的从文件加载图片的imread,保存图片到文件的imwrite,从内存加载图片或者将图片编码后放到内存缓冲区的imencode/imdecode都在这个头文件中#include <opencv2/highgui.hpp>High原创 2021-04-25 23:29:55 · 702 阅读 · 0 评论