自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 磨皮功能 C++/C的OpenCV 实现

本文介绍使用OpenCV实现简单的磨皮功能,主要采用双边滤波器进行皮肤平滑处理。代码提供了C++实现,包含图像加载、参数设置和结果显示等功能。关键参数包括邻域直径(d)、颜色标准差(sigmaColor)和空间标准差(sigmaSpace),通过调整这些参数可获得不同程度的磨皮效果。编译时需安装OpenCV库并使用g++链接。该方法简单易用但有一定局限性,适合基础皮肤美化需求,对于复杂场景可能需要结合更高级的技术。

2025-05-31 23:34:24 480

原创 c/c++的opencv车牌识别

摘要: 该项目基于OpenCV和Tesseract OCR实现车牌识别,包含图像预处理、轮廓检测、车牌区域筛选及OCR识别四个核心步骤。首先通过灰度化、高斯模糊和Canny边缘检测处理图像;其次提取轮廓并依据宽高比、面积和形状初步筛选车牌区域;最后裁剪ROI并使用Tesseract进行文本识别。代码提供环境配置说明(需安装OpenCV、Tesseract及语言包),支持自定义参数优化识别效果。典型输出包括车牌位置标记和识别文本,适用于简单场景下的车牌检测任务。

2025-05-31 23:30:43 599

原创 OpenCV中的分水岭算法 (C/C++)

摘要:OpenCV中的分水岭算法是一种基于标记的图像分割方法,适用于分离接触或重叠对象。该算法通过模拟注水过程形成边界线(分水岭),其中用户预定义的标记点(前景/背景)指导分割过程。OpenCV提供cv::watershed函数实现该算法,主要步骤包括图像预处理、标记生成和应用分割。典型流程涉及灰度化、二值化、去除噪声、距离变换等预处理,以及连通组件分析创建标记图像,最终将分水岭线(标记为-1)可视化在结果中。该算法能有效处理对象粘连问题,但需谨慎调整标记以避免过度分割。

2025-05-30 08:52:56 733

原创 c/c++的opencv霍夫变换

摘要:OpenCV中的霍夫变换包括直线变换和圆变换两种主要方法。直线变换通过标准霍夫变换(cv::HoughLines)和概率霍夫变换(cv::HoughLinesP)检测图像中的直线,前者返回(rho,theta)参数对,后者直接返回线段端点坐标。圆变换(cv::HoughCircles)使用两阶段算法检测圆心和半径。两种变换都需先进行边缘检测,通过参数调节可控制检测精度。霍夫变换是计算机视觉中检测几何形状的重要工具。(148字)

2025-05-30 08:46:27 715

原创 使用 C/C++ 和 OpenCV 调用摄像头

本文介绍了如何使用C/C++和OpenCV调用摄像头并处理视频流。主要内容包括:1) 准备工作,确保OpenCV库正确安装;2) 使用cv::VideoCapture对象打开摄像头;3) 通过read()方法循环读取视频帧;4) 使用cv::imshow()显示视频帧;5) 释放资源和销毁窗口。文章还提供了获取和设置摄像头属性的方法(如分辨率、FPS),并给出了完整的示例代码,帮助读者快速实现摄像头调用功能。

2025-05-29 09:37:16 649

原创 C/C++ OpenCV 矩阵运算

本文介绍了使用C/C++和OpenCV进行矩阵运算的核心知识。主要内容包括:1)矩阵创建与初始化的多种方法,如cv::Mat类的构造函数、create()方法和eye()方法;2)矩阵元素的访问方式,包括安全的at()方法和高效的指针访问;3)基本的算术运算,包括矩阵与标量、矩阵与矩阵之间的加减乘除操作;4)标准矩阵乘法运算的实现;5)其他重要运算如矩阵转置。文章通过代码示例详细展示了各种矩阵运算的具体实现方式,为OpenCV图像处理和计算机视觉算法开发提供了基础支持。

2025-05-29 09:36:25 901

原创 图像卷积OpenCV C/C++ 核心操作

本文介绍了使用OpenCV的C++接口实现图像卷积的方法。详细讲解了卷积的基本原理,包括卷积核定义、锚点位置和边界处理策略。重点解析了cv::filter2D函数的使用,该函数支持任意线性滤波操作,并提供了三种典型卷积核(模糊、锐化、边缘检测)的实现示例。代码演示了如何加载图像、定义卷积核、处理边界条件以及显示结果。特别强调了对于梯度类操作需要处理负值的情况。文章还指出OpenCV提供了更高效的预定义滤波函数(如高斯模糊、中值滤波等)可供直接调用。

2025-05-28 14:10:59 1460

原创 c/c++的opencv图像金字塔缩放

本文介绍了OpenCV C++中图像金字塔的基本缩放操作。主要内容包括: 图像金字塔概念:通过连续下采样/上采样生成多尺度图像序列,用于计算机视觉任务。 核心操作: cv::pyrDown:先高斯模糊后采样,使图像宽高减半 cv::pyrUp:先插值放大后高斯滤波,使图像尺寸加倍 应用场景: 多尺度特征检测 图像融合 目标检测 图像分割 视频压缩 提供了完整的C++代码示例,展示如何加载图像并进行下采样和上采样操作,包含尺寸变化显示和结果可视化。 两种操作是计算机视觉算法的基础组件,能有效处理不同尺度的图像

2025-05-28 14:07:36 1047

原创 C/C++的OpenCV的锐化

本文介绍了使用 C++/C 的 OpenCV 实现图像锐化的三种方法:反锐化掩模、拉普拉斯算子和自定义卷积核。反锐化掩模通过模糊图像后计算掩模并加权叠加实现锐化;拉普拉斯算子利用二阶微分检测边缘;自定义卷积核则直接设计特定核进行卷积运算。文章提供了完整的代码示例,包含锐化函数实现和主函数调用流程,帮助读者快速掌握 OpenCV 图像锐化技术。

2025-05-27 08:18:53 1326

原创 c/c++的opencv双边滤波

摘要: 双边滤波是一种非线性图像平滑技术,能在去噪同时保留边缘。它结合空间邻近度和像素值相似度两个高斯核,通过权重乘积确保邻近且颜色相似的像素对滤波影响更大。OpenCV提供cv::bilateralFilter函数实现该算法,核心参数包括邻域直径(d)、颜色标准差(sigmaColor)和空间标准差(sigmaSpace)。参数调节需权衡边缘保留与降噪效果,建议从较小值逐步调整。优点是边缘保留能力强,缺点是计算量大且参数敏感。适用于图像美化、降噪等场景。

2025-05-27 08:17:05 749

原创 OpenCV (C/C++) 实现 Scharr 算子进行边缘检测

本文介绍了使用OpenCV(C++)实现Scharr算子进行边缘检测的方法。Scharr算子是一种基于一阶微分的边缘检测算子,相比Sobel算子具有更好的旋转对称性和细微边缘检测精度。文章详细解释了Scharr算子的3x3卷积核结构及其优势,并提供了完整的OpenCV实现代码示例,包括图像读取、灰度转换、X/Y方向梯度计算、梯度合并及结果显示等步骤。该实现简单高效,适合需要精确边缘检测的应用场景。

2025-05-26 11:44:10 895

原创 OpenCV (C/C++) 中使用 Sobel 算子进行边缘检测

本文介绍了在OpenCV(C++)中使用Sobel算子进行边缘检测的方法。Sobel算子通过两个3×3卷积核分别计算图像的水平和垂直梯度,通过梯度幅值识别边缘。实现步骤包括:灰度转换、高斯模糊预处理、分别计算x/y方向梯度、合并梯度幅值并显示结果。代码示例展示了如何加载图像、应用Sobel算子、转换梯度图像格式,最终生成边缘检测结果。该方法能有效识别图像中的物体边界,是计算机视觉中的基础技术。

2025-05-26 11:43:13 1005 2

原创 c/c++的opencv椒盐噪声

本文介绍了椒盐噪声的基本原理及其在C/C++中的实现方法。椒盐噪声表现为图像中随机出现的黑白像素点,通常由传感器或传输错误导致。通过随机数生成算法,可以控制噪声密度和盐/椒比例来模拟这种噪声。示例代码展示了如何遍历图像像素,根据阈值决定是否添加噪声(255或0)。文章还指出了改进方向,如使用C++11的随机数生成器、处理彩色图像等注意事项。这种噪声模型简单有效,适用于图像处理算法的测试和验证。

2025-05-25 21:22:09 1615

原创 c/c++的opencv伽马噪声

本文介绍了如何使用C++和OpenCV为图像添加伽马噪声。伽马噪声是一种乘性噪声,其值遵循伽马分布,常见于激光散斑等成像系统。文章首先解释了伽马分布的概率密度函数及其参数,指出OpenCV没有直接生成伽马噪声的内置函数,但可通过C++11的<random>库实现。代码示例展示了如何生成乘性伽马噪声:先将图像转换为浮点类型,使用std::gamma_distribution生成噪声值并乘以像素值,最后进行归一化处理并转换回原格式。文中还讨论了参数选择对噪声效果的影响,以及处理彩色图像和值裁剪的注意

2025-05-25 21:21:14 1212

原创 使用 C/C++ 和 OpenCV 进行像素级卷积核运算

本文介绍了使用C/C++和OpenCV库实现图像卷积核运算的方法。卷积作为数字图像处理的核心技术,通过将输入图像的每个像素与其邻域像素根据卷积核进行加权求和,实现各种图像处理效果。文章详细解释了卷积的工作原理,并列举了常见卷积核类型(如平滑/模糊核、锐化核、边缘检测核等)及其作用。通过示例代码演示了如何利用OpenCV的filter2D()函数实现卷积操作,包括图像读取、卷积核定义、边界处理等关键步骤。该技术为高级图像处理应用奠定了基础,适用于噪声去除、边缘增强等多种场景。

2025-05-24 11:12:28 1221

原创 c/c++的opencv像素级操作二值化

摘要: 图像级操作是数字图像处理的基础,其中二值化是最常用的像素级操作之一。二值化通过设定阈值将灰度图像转换为黑白图像,广泛应用于OCR、特征提取等领域。阈值选择方法包括全局阈值、自适应阈值和Otsu算法。使用C/C++配合OpenCV库可高效实现二值化,核心函数为cv::threshold()(全局阈值)和cv::adaptiveThreshold()(自适应阈值)。文章提供了完整的代码示例,涵盖图像读取、阈值处理及结果保存的全流程。对于不依赖第三方库的情况,需自行处理图像格式解析和像素操作,但过程较为复

2025-05-24 10:48:23 1350

原创 C/C++的OpenCV 进行轮廓提取

本文介绍了如何使用 C++ 和 OpenCV 库从图像中提取轮廓。首先,确保已安装并配置好 OpenCV 环境。轮廓提取的步骤包括:加载图像、预处理(转换为灰度图、高斯模糊、二值化)、使用 cv::findContours 函数查找轮廓,以及使用 cv::drawContours 函数绘制轮廓。预处理阶段可以通过阈值处理或 Canny 边缘检测生成二值图像。findContours 函数会修改输入的二值图像,因此建议使用 .clone() 保留原始图像。轮廓的层级信息可以通过 hierarchy 向量获取,

2025-05-23 08:34:43 1111

原创 C/C++的OpenCV 进行图像梯度提取

本文介绍了如何使用 C++ 和 OpenCV 库进行图像梯度提取,重点介绍了 Sobel、Scharr 和 Laplacian 三种常用的梯度算子。首先,图像需要转换为灰度图并进行高斯模糊以降低噪声。随后,通过 Sobel 和 Scharr 算子分别计算水平和垂直方向的梯度,并通过合并梯度幅值来展示整体梯度效果。Laplacian 算子则用于检测图像中的二阶导数,常用于边缘检测。文章详细介绍了每种算子的函数参数及其实现步骤,并展示了如何通过 OpenCV 函数处理和显示结果。这些方法在图像处理中广泛应用于边

2025-05-23 08:26:23 1189

原创 c/c++的opencv膨胀

本文详细介绍了使用 OpenCV (C++) 进行图像膨胀操作的原理和实现方法。图像膨胀是形态学图像处理中的基本操作,用于填充小孔洞、连接断开的物体部分以及加粗二值图像中的物体。膨胀操作通过结构元素(核)扫描输入图像,若结构元素下至少一个像素为前景像素,则输出图像中对应像素置为前景像素。OpenCV 提供了 cv::dilate() 函数来实现膨胀操作,并可通过调整结构元素的大小、形状和迭代次数来控制膨胀效果。文章还提供了完整的 C++ 代码示例,展示了如何加载图像、创建结构元素、执行膨胀操作并显示结果。膨

2025-05-22 20:15:22 860

原创 c/c++的opencv腐蚀

本文详细介绍了使用 OpenCV (C++) 进行图像腐蚀操作的方法。图像腐蚀是形态学图像处理中的基本操作,用于去除噪声、分离物体和细化二值图像。腐蚀通过结构元素(核)扫描图像,缩小亮色区域并扩大暗色区域。OpenCV 提供了 cv::erode() 函数来实现腐蚀,支持自定义结构元素形状(如矩形、椭圆形、十字形)和大小。文章还提供了完整的 C++ 代码示例,展示了如何加载图像、创建结构元素、执行腐蚀操作并显示结果。通过调整结构元素的大小、形状和迭代次数,可以灵活控制腐蚀效果,适用于去噪、物体分离和特征提取

2025-05-22 20:13:46 1284

原创 opencv的直方图

图像直方图是计算机视觉和图像处理中的重要工具,用于表示图像像素强度的分布。OpenCV 提供了强大的功能来计算和可视化直方图。直方图可以帮助分析图像的亮度、对比度、颜色分布,并用于阈值选择、图像相似性比较等。OpenCV 中的 cv::calcHist 函数是计算直方图的核心工具,支持单通道和多通道图像,并允许用户指定多种参数。直方图的应用包括直方图均衡化、直方图比较和直方图反向投影,这些技术在图像增强、对象识别和图像分割中非常有用。掌握直方图的使用可以显著提升图像处理的能力。

2025-05-21 14:25:56 1278

原创 opencv的图像卷积

图像卷积是计算机视觉和图像处理中的基础操作,通过将核(Kernel)应用于图像的每个像素来修改或增强图像。OpenCV 提供了 cv::filter2D 函数来实现二维卷积,允许用户自定义卷积核并应用于输入图像。卷积核的不同设计可以实现多种效果,如模糊、锐化、边缘检测等。边界处理在卷积操作中至关重要,OpenCV 提供了多种边界处理模式以避免图像边缘产生伪影。理解卷积核的设计和边界处理方式,对于有效利用 OpenCV 进行图像处理至关重要。

2025-05-21 11:55:10 973

原创 c/c++的opencv高斯模糊

文章摘要: 高斯模糊是一种基于高斯函数的图像平滑技术,广泛应用于降噪、图像预处理等领域。与均值模糊不同,高斯模糊根据像素与中心点的距离赋予不同权重,使得模糊效果更自然。本文详细介绍了高斯模糊的原理,包括高斯核的构建与归一化过程,并通过C/C++代码示例展示了如何手动实现高斯模糊。此外,文章还对比了高斯模糊与均值模糊的差异,强调了高斯模糊在保留图像结构和处理边缘方面的优势。通过结合OpenCV库,读者可以更高效地实现高斯模糊,并应用于实际图像处理任务中。

2025-05-20 09:01:08 909

原创 c/c++的opencv均值模糊

本文深入探讨了图像处理中的均值模糊技术,介绍了其基本原理和数学表示。均值模糊通过计算像素邻域内的平均值来平滑图像,常用于去除噪声或创造特定视觉效果。文章详细解释了均值模糊的卷积核操作,并提供了手动实现均值模糊的C/C++代码示例。代码展示了如何在不依赖OpenCV的情况下处理灰度图像,并使用边界复制策略处理图像边界。最后,文章还提到了如何使用OpenCV的I/O功能加载和保存图像。通过本文,读者可以深入理解均值模糊的实现细节,并掌握其在实际应用中的使用方法。

2025-05-20 08:56:22 759

原创 c/c++的opencv开闭操作

开闭操作

2025-05-19 15:43:05 1525

原创 c/c++的opencv均值函数

均值函数初识

2025-05-19 15:32:44 941

原创 c/c++的opencv直方图初识

本文介绍了图像处理中的直方图概念及其在OpenCV中的应用。直方图是一种统计图表,用于显示图像中每个像素强度值的频率分布,横坐标表示像素强度值,纵坐标表示像素数量。直方图可用于分析图像亮度、对比度、内容,以及进行图像阈值化、均衡化、匹配与检索等操作。文章详细讲解了如何使用OpenCV的cv::calcHist函数计算灰度图像的直方图,并提供了C++代码示例,展示了如何加载图像、设置参数、计算直方图并可视化结果。通过本文,读者可以快速掌握直方图的基本概念及其在OpenCV中的实现方法。

2025-05-18 09:55:21 855

原创 c/c++的findcontours崩溃解决方案

本文是讲解调用findcontours崩溃的问题的解决方案,能直接解决findcontours因为与std::vector不兼容导致的崩溃

2025-05-18 09:54:02 1046

原创 c/c++的opencv的轮廓匹配初识

OpenCV 轮廓匹配是一种用于比较两个形状相似度的计算机视觉技术,核心函数是 cv::matchShapes()。该技术通过提取图像中的轮廓,并利用 Hu矩 (Hu Moments) 计算轮廓之间的相似度。Hu矩具有平移、旋转和缩放不变性,适合形状匹配。cv::matchShapes() 返回一个浮点数,值越小表示轮廓越相似。实现步骤包括图像加载、预处理(灰度转换、二值化、形态学操作)、轮廓提取及匹配。本文提供了一个 C++ 示例代码,展示了如何加载图像、提取轮廓并进行匹配,最终输出相似度值。通过设定阈值

2025-05-17 16:47:50 836

原创 c/c++的opencv模糊

本文主要讲opencv的模糊的使用场景

2025-05-17 16:46:19 994

原创 c/c++的opencv的图像预处理讲解

opencv的图像预处理讲解

2025-05-16 16:38:34 1500 2

原创 opencv入门指南

opencv入门指南

2025-05-16 16:34:41 962

原创 入门消息队列

系统调用消息对应初识

2025-05-15 11:20:48 661

原创 c/c++消息队列库RabbitMQ的使用

消息队列库RabbitMQ详解

2025-05-15 11:11:18 1280

原创 排序算法详解

排序算法是计算机科学中最基础也最重要的算法之一。它将一组数据(例如数字列表、字符串集合)按照特定的顺序(升序或降序)重新排列。高效的排序算法对于优化其他算法(如搜索和合并算法)的效率至关重要。

2025-05-14 09:22:01 747

原创 动态规划算法详解

处理字符串高效算法动态规划

2025-05-14 09:15:00 1304

原创 Typebot可视化构建高级聊天机器人,赋能您的在线业务

开源项目typebot的可聊天机器人

2025-05-13 19:36:25 617

原创 OpenAI新开源项目Codex CLI提升开发效率的新利器

openai开源了开发神器codex cli

2025-05-13 19:32:35 1087

原创 c/c++爬虫总结

本文主要讲我这几天学习了解c/c++爬虫的总结

2025-05-12 09:14:11 1530

原创 https的发展历程

本文主要讲https的发展历程

2025-05-12 08:17:39 849

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除