OpenCV-空间滤波学习笔记

这篇具有很好参考价值的文章主要介绍了OpenCV-空间滤波学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的

了解和实践OpenCV在空间滤波上的应用。

方法

Source:机器视觉技术与应用_中国大学MOOC(慕课) (icourse163.org)

当图像中的边缘信息和卷积核的形状是相符合的,得到的响应值最大。

滤波和边缘提取函数

中值滤波

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

均值滤波

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

高斯均值滤波

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

Sobel边缘提取

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

不同函数效果展示

中值滤波

实验用图

带有椒盐噪声的图像:

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

实验代码

#include<opencv2/opencv.hpp>

using namespace std;

using namespace cv;

int main() {

void medianBlurTest();

medianBlurTest();

return 0;

}

void medianBlurTest() {

//读取图像并转为灰度图

Mat srcMat = imread("E:\\Projects\\C++\\morphology_practice\\test_data\\medianBlur.png", 0);

//判断图像是否读取成功

if (srcMat.empty()) {

cout << "Fail to read pic!" << endl;

return;

}

//定义图像容器

Mat thresh_Mat;

Mat medianBlur_Mat;

//中值滤波

medianBlur(srcMat, medianBlur_Mat, 3);

//展示滤波效果

imshow("srcMat", srcMat);

imshow("medianBlur_Mat", medianBlur_Mat);

waitKey(0);

}

滤波结果

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

高斯均值滤波

实验图像

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

带有高斯噪声的图像

实验代码

#include<opencv2/opencv.hpp>

using namespace std;

using namespace cv;

int main() {

void GaussianBlurTest();

GaussianBlurTest();

return 0;

}

void GaussianBlurTest() {

//读取图像并转为灰度图

Mat srcMat = imread("E:\\Projects\\C++\\morphology_practice\\test_data\\GaussianBlur.png", 0);

//判断图像是否读取成功

if (srcMat.empty()) {

cout << "Fail to read pic!" << endl;

return;

}

//定义图像容器

Mat GaussianBlur_Mat;

//使用高斯滤波        

GaussianBlur(srcMat, GaussianBlur_Mat, Size(9, 9),1,1);

//展示滤波效果

imshow("srcMat", srcMat);

imshow("GaussianBlur_Mat", GaussianBlur_Mat);

waitKey(0);

}

滤波结果

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

Sobel边缘提取

实验图像

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

实验代码

#include<opencv2/opencv.hpp>

using namespace std;

using namespace cv;

int main() {

void SobelTest();

SobelTest();

return 0;

}

void SobelTest() {

//读取图像并转为灰度图

Mat srcMat = imread("E:\\Projects\\C++\\morphology_practice\\test_data\\Sobel.png", 0);

//判断图像是否读取成功

if (srcMat.empty()) {

cout << "Fail to read pic!" << endl;

return;

}

//定义图像容器

Mat dx;

Mat dy;

//使用Sobel边缘提取算法

Sobel(srcMat, dx, CV_16SC1, 1, 0, 5);

Sobel(srcMat, dy, CV_16SC1, 0, 1, 5);

//展示滤波效果

imshow("srcMat", srcMat);

imshow("dx", dx);

imshow("dy", dy);

waitKey(0);

}

边缘提取结果

水平方向:

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

垂直方向:

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

简单磨皮程序的实现

原理

  • 使用HSV阈值的方法识别人类的皮肤
  • 使用mask获取人类皮肤区域
  • 对皮肤区域进行均值滤波

实验代码

#include<opencv2/opencv.hpp>

using namespace std;

using namespace cv;

int main() {

void Convolution_app();

Convolution_app();

return 0;

}

void Convolution_app() { //简单的磨皮程序

//打开摄像头

VideoCapture cap(0);

//肤色h范围

double i_minH = 0;

double i_maxH = 20;

//肤色饱和度s范围

double i_minS = 43;

double i_maxS = 255;

//肤色亮度范围

double i_minV = 55;

double i_maxV = 255;

while (true)

{

//定义图像容器

Mat frame;

Mat hsvMat;

Mat maskMat;

Mat objectMat;

Mat gussMat;

cap >> frame;//读取当前帧的图像

//将图像转为hsv色阈

cvtColor(frame, hsvMat, COLOR_BGR2HSV);

//初始化maskMat

frame.copyTo(maskMat);

//利用inRange函数对图片进行hsv筛选

inRange(hsvMat, Scalar(i_minH, i_minS, i_minV), Scalar(i_maxH, i_maxS, i_maxV), maskMat);

//将原图拷入输出图像中

frame.copyTo(objectMat);

//对图像进行高斯滤波

GaussianBlur(frame, gussMat, Size(5, 5), 3, 0);

//高斯滤波后的人脸部分送入输出图像中

gussMat.copyTo(objectMat, maskMat);

//显示结果

imshow("磨皮前", frame);

imshow("mask", maskMat);

imshow("磨皮后", objectMat);

waitKey(30);

}

}

效果展示

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv

OpenCV-空间滤波学习笔记,计算机视觉,算法,c++,opencv文章来源地址https://www.toymoban.com/news/detail-795922.html

结果

讨论

到了这里,关于OpenCV-空间滤波学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:3分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 车牌识别其实是个经典的机器视觉任务了,

    2024年02月12日
    浏览(47)
  • 计算机竞赛 深度学习 机器视觉 人脸识别系统 - opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 人脸识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:3分 🧿 更多资料, 项目分享: https://gitee.com/dancheng

    2024年02月07日
    浏览(62)
  • 计算机视觉OpenCv学习系列:第四部分、键盘+鼠标响应操作

    键盘响应中有一个函数叫做 waitKey ,所有的获取键盘键值都是通过waitKey函数实现的。 1.键盘响应事件 cv.waitKey( [, delay] ) -- retval delay如果没有声明或者delay=0,表示一直阻塞 delay大于0,表示阻塞指定毫秒数 retval返回的对应键盘键值,注意:在不同的操作系统中可能会有差异! 典

    2024年02月09日
    浏览(35)
  • 【学习笔记】计算机视觉深度学习网络模型

    这是本人学习计算机视觉CV领域深度学习模型的学习的一点点学习笔记,很多片子没有完成,可以作为学习的参考~

    2024年04月10日
    浏览(57)
  • 计算机竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:4分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/d

    2024年02月07日
    浏览(44)
  • 多目标跟踪算法 实时检测 - opencv 深度学习 机器视觉 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习多目标跟踪 实时检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-sen

    2024年02月05日
    浏览(49)
  • 基于计算机视觉,深度学习、机器学习,OpenCV,图像分割,目标检测卷积神经网络计算机毕业设计选题题目大全选题指导

    随着深度学习、机器学习和神经网络技术的快速发展,计算机视觉领域的应用变得越来越广泛和有趣。本毕业设计旨在探索这一领域的前沿技术,将深度学习模型、神经网络架构、OpenCV图像处理工具,以及卷积神经网络(CNN)的强大能力结合起来,以解决实际图像处理问题。

    2024年02月08日
    浏览(49)
  • 计算机设计大赛 深度学习人脸表情识别算法 - opencv python 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/

    2024年02月21日
    浏览(71)
  • 计算机竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:5分 🧿 更多资料, 项目分享: https

    2024年02月08日
    浏览(50)
  • 实战指南:使用OpenCV 4.0+Python进行机器学习与计算机视觉

    💂 个人网站:【办公神器】【游戏大全】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 计算机视觉和机器学习的融合为我们带来了前所未有的机会和挑战。从智能助手到

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包