opencv(c++)---自带的卷积运算filter2D以及应用

opencv(c++)---自带的卷积运算filter2D以及应用

c++ 复制代码
#include <opencv2/opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

int main()
{
	Mat imgin, imgout;
	imgin = imread("D:/1234.png");
	if (imgin.empty())
	{
		cout << "Could not open or find the image!\n" << endl;
		return -1;
	}
	imshow("原图", imgin);
	Mat kernel = (Mat_<float>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
    //创建一个3x3的卷积核。这个特定的卷积核是一个锐化卷积核,它的形式可以增强图像的边缘,使图像看起来更加清晰。
	filter2D(imgin, imgout,imgin.depth(), kernel); //使用filter2D函数进行卷积操作
    // 使用 filter2D 函数对输入图像 imgin 进行卷积操作,输出结果存入 imgout 中。
	//imgin.depth() 指定输出图像的深度与输入图像相同。
	imshow("original image", imgin);
	waitKey(0);
	return 0;
}
OpenCV自带的卷积运算有广泛的应用,以下是一些主要的应用场景:
  1. 图像滤波
    • 卷积运算常用于图像平滑,使用均值滤波、Gaussian滤波等方法来减少图像噪声。
    • 例如:应用高斯滤波器可以有效地去除图像中的高频噪声。
  2. 边缘检测
    • 使用卷积可以实现边缘检测操作,如Sobel算子、Prewitt算子和拉普拉斯算子。这些算子帮助提取图像中的边缘信息。
    • 例如:通过应用Sobel算子,可以得到图像在水平和垂直方向上的边缘。
  3. 特征提取
    • 在计算机视觉中,可以使用卷积运算提取图像特征,比如角点、纹理等。这些特征对后续的图像分析和分类任务非常重要。
  4. 图像模糊
    • 应用卷积核可以实现图像模糊效果,用于拍照后处理或艺术效果生成。
  5. 图像锐化
    • 特定的卷积核可以增强图像细节,提高图像的锐度。这对细节特征的突出很有帮助。
  6. 模板匹配
    • 通过卷积,可以在图像中寻找特定的图案或模板,用于对象识别和检测。
  7. 图像转换
    • 可以通过卷积运算实现图像的几何变换,比如旋转、缩放和扭曲等。
  8. 卷积神经网络(CNN)
    • 在深度学习中,卷积运算是卷积神经网络的核心,广泛应用于图像分类、目标检测、语义分割等任务。

    • 在深度学习中,卷积运算是卷积神经网络的核心,广泛应用于图像分类、目标检测、语义分割等任务。

总之,卷积运算在图像处理和计算机视觉领域中占据着重要地位,是许多基础算法和高级技术的核心组成部分。

相关推荐
_wyt001几秒前
洛谷P15799 [GESP202603 五级] 找数 题解
c++·gesp
SNSZR14 分钟前
2026 AI实操五大学习思路:破解碎片化自学无法落地商用项目的核心痛点
人工智能·学习
落地加湿器5 分钟前
从Hermes cli的源代码中学习skill
人工智能·python·学习·智能体·源码解读
困意少年7 分钟前
C++11 如何减少无意义的拷贝:右值引用、`std::move`、移动语义与完美转发
c++
志栋智能8 分钟前
超自动化安全的文化挑战:如何推动安全团队变革?
运维·网络·人工智能·安全·自动化
迅客AI9 分钟前
可灵AI&飞书多维表一键生图生视频,告别单点充值,批量一键生图生视频拿捏住!
人工智能·飞书·可灵ai·生图生视频
TE-茶叶蛋10 分钟前
@node-rs/jieba与serverExternalPackages 的作用原理
人工智能
SL-staff10 分钟前
企业级私有化AI知识库完整搭建指南:从RAG架构到Llama 3落地实践
人工智能·系统架构·私有化部署·rag·ai知识库·llama3·jvs-ai
带娃的IT创业者10 分钟前
Gemini 3.5 Flash 深度解析:重新定义“性价比“的前沿智能体
人工智能·大语言模型·ai agent·gemini·技术解析·性价比·google i/o
优宁维生物13 分钟前
p21 Waf1/Cip1 科普:蛋白基础定义、生理功能与实验室检测指南
人工智能