- 博客(140)
- 收藏
- 关注
原创 VS 项目属性配置(右键项目 → 属性)
vc15=VS2017,vc16=VS2019/2022/2026,vc17 是更高版本,看你下载的 opencv 包。分【Debug / Release】分别配置,平台区分 x64(现在 opencv 基本都是 x64)480 是版本号,你是 470 就写 470、490 就 490,新版 opencv 只写第一条。
2026-11-05 08:28:22
160
原创 analogWrite函数
analogWrite()函数输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()函数(或在同一引脚调用digitalRead()函数或digitalWrite()函数)。大多数Arduino开发板(ATmega168或ATmega328)只有引脚3,5,6,9,10和11可以实现该功能。在使用analogWrite()前,不需要调用pinMode()来设置引脚为输出引脚。:pin为用于输入数值的引脚;引脚5和引脚6的PWM输出将高于预期的占空比(输出的数值偏高)。
2026-07-26 10:18:21
234
原创 analogRead函数
Arduino开发板包含1个6通道(A0到A5)(Mini和Nano有8个通道,Mega有16个通道),10位模/数转换器。这意味着它将0~5V之间的输入电压映射到0~1023之间的整数值。这将产生读数之间的关系,5V/1024单位,或0.0049V(4.9mV)每单位。它需要大约100us(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。注意:如果模拟输入引脚没有连入电路,由analogRead()函数返回的值将根据多项因素(例如,其他模拟输入引脚,你的手靠近板子等)产生波动。
2026-07-26 10:04:53
179
原创 arduino-超声波传感器
距离计算公式: 距离 (cm) = 高电平微秒数 ÷ 58。发射超声波后,遇到障碍物反弹接收,ECHO 输出高电平,测量高脉冲长度以获得距离,ECHO(回声接收脚,输出)
2026-07-19 12:47:14
48
原创 蜂鸣器-arduino
如果在调用tone()函数的过程中不指定持续时间(duration),那么tone()函数会一直持续执行,直到程序调用noTone()函数为止。noTone()函数用来停止tone()函数产生的方波,该函数原型为:noTone(pin)其中,参数pin表示方波输出的针脚.区分有源和无源蜂鸣器可以从外观来初步判断:无源蜂鸣器的电路板通常是裸露的,有源蜂鸣器的电路通常是被黑胶覆盖的。蜂鸣器又分为有源蜂鸣器和无源蜂鸣器两种,这两种蜂鸣器如图所示。蜂鸣器的正极连接即可,驱动有源蜂鸣器的代码如下所示。
2026-07-12 15:29:56
175
原创 arduino按键试验
在按键实验中,如果不使用上拉电阻或者下拉电阻,会发现正确代码下载到Arduino开发板后,LED已经亮起来了,但是按键并没有被按下,这不是程序的问题,而是电路出现了问题。上节我们设计的小灯实验都应用到了Arduino的 I/O口的输出功能,本节实验我们尝试使用Arduino的 1/O口的输入功能即为读取外接设备的输出值,我们用一个按键和一个LED小灯完成一个输人输出结合使用的实验。在上拉电阻连接方案中,按键按下时,Arduino会检测到低电平,下拉法刚好相反,按下为高电平,一般情况下多采用下拉法。
2026-06-21 11:44:00
37
原创 LED闪烁实验
本文介绍了发光二极管(LED)的工作原理及Arduino控制实验。LED是一种低功耗、长寿命的半导体发光器件,通过PN结正向导通时电子空穴复合发光。实验中选用1.7V工作电压的LED,通过220Ω限流电阻与Arduino数字接口连接(上拉接法),当输出高电平时LED点亮,低电平时熄灭。实验代码实现了LED以1秒间隔闪烁的功能,通过digitalWrite()控制电平状态,delay()实现延时。该实验验证了LED的基本特性和Arduino的数字输出控制方法。
2026-06-21 10:35:41
167
原创 arduino串口输入
屏幕收到换行符后,光标就会移动到下一行。所以你看到的下一次输出出现在新行,实际上是。在 Arduino IDE 的串口监视器右下角,有一个下拉选项(通常默认为。读者可以思考为何上述代码没有换行代码,而在监视器上输出的数据会自动换行?当你在输入框中输入字符并点击“发送”时,监视器会自动在你输入的字符。,即 ASCII 码 10)或回车换行符(你的代码循环读取缓冲区,当读到这个。会把这个换行符原样输出到屏幕上。,然后再发送字符(例如发送。你观察到的“换行”效果,的停顿,没有换行)。,所以屏幕不会换行。
2026-06-21 10:05:46
224
原创 9.1threshold实现图像阈值分割
在OpenCV中,threshold函数是一个非常基础且强大的工具,用于将图像转换为二值图像(即图像的每个像素点非黑即白)。这个函数在图像预处理、特征提取、边缘检测等任务中非常有用。下面,我将详细解释如何在C++中使用OpenCV的threshold函数。在计算机视觉和图像处理中,阈值分割(Thresholding)是一种常用的图像处理技术,用于将图像转换成二值图像(黑白图像)。这种方法可以简化图像分析过程,使得后续的特征提取更加容易。OpenCV 提供了一个名为的函数来实现这一功能。
2024-10-15 08:27:37
1006
原创 2.4多路径读取图像
函数imwrite用来输出图像到文件函数声明函数从指定的文件中加载图像并返回它。如果由于文件缺失、权限不当或格式不受支持或无效等原因无法读取图像,则该函数将返回一个空矩阵(即Mat::data为NULL两种方法用于检查cv::Mat(OpenCV 中的矩阵类)对象是否为空。
2024-10-09 08:40:40
460
原创 5.10直方图均衡化
直方图均衡化(Histogram Equalization)是一种常用的图像处理技术,用于改善图像的对比度。通过调整图像中像素值的分布,直方图均衡化可以使图像的动态范围更广,从而增强图像的细节可见度。直方图均衡化的基本步骤如下:1. 计算图像的灰度直方图:统计每个灰度级的像素数量。2. 计算累积分布函数(CDF):根据直方图计算每个灰度级的累积概率。3. 映射原始灰度级到新的灰度级:将每个灰度级映射到新的灰度级,使得新的灰度级分布尽可能均匀。
2024-09-27 01:00:00
1652
原创 8.7基于数学形态学的边缘检测
数学形态学(Mathematical Morphology)是一套用于图像处理的技术,它包括膨胀(Dilation)、腐蚀(Erosion)、开运算(Opening)和闭运算(Closing)等操作。通过组合这些基本操作,可以实现复杂的图像处理任务,比如边缘检测。
2024-09-27 00:00:00
621
原创 8.12DoG (Difference of Gaussians)
不同尺度的高斯模糊图像之间的差异(DoG),用于边缘检测。函数: cv::GaussianBlur() 结合 cv::Laplacian() 或者自定义DoG实现。在OpenCV中并没有直接提供一个名为“DoG”(Difference of Gaussians)的函数,但是你可以通过组合使用高斯模糊(Gaussian Blur)来实现DoG的效果。DoG技术通常用于边缘检测和特征检测,如SIFT(Scale-Invariant Feature Transform)特征提取算法中。
2024-09-26 04:45:00
561
原创 9.2自适应阈值分割
自适应阈值分割是图像处理中的一个重要概念,它可以根据局部区域的亮度来调整阈值,从而在光照不均匀或背景复杂的图像中获得更好的分割效果。这种方法特别适用于光照条件变化较大的场景,或者是背景与前景对比度不均匀的情况。
2024-09-26 01:00:00
1602
原创 8.13霍夫变换-直线检测
在OpenCV中,可以使用标准霍夫变换HoughLines或概率霍夫变换HoughLinesP函数来实现霍夫变换直线检测。前者用于检测无穷长的直线,后者用于检测有限长度的线段。
2024-09-25 05:30:00
2288
原创 8.11Zero Crossing Detection (零交叉检测)
使用 OpenCV 和 C++ 实现零交叉检测功能,并对图像中的边缘进行检测。注意,零交叉检测的效果会受到拉普拉斯算子参数的影响,因此可能需要根据具体的应用场景调整这些参数。
2024-09-25 00:45:00
2652
原创 9.6grabCut进行分割
grabCut 算法是 OpenCV 中一个非常强大的图像分割方法,主要用于前景与背景的分割。它基于图割(Graph Cut)算法,并通过迭代的方式优化能量函数,以达到更好的分割效果。在 OpenCV 中,grabCut 函数通常用于处理包含复杂背景的图片,以分离出感兴趣的前景对象。grabCut() 是 OpenCV 提供的一个高级图像分割算法,它可以用来自动地分割图像中的对象。
2024-09-24 08:00:00
671
原创 9.5HSV体系进行颜色分割
inRange() 函数是 OpenCV 中用于图像处理的一个非常有用的函数,即从图像中提取出介于指定范围内的像素值。这个函数在图像处理中特别有用,比如颜色检测、背景去除等应用。它主要用于图像的阈值处理,但与其他阈值方法(如 threshold())不同的是,inRange() 可以设定一个范围来过滤像素值,非常适合用于色彩空间的分割,如从视频或图像中分离出特定颜色的物体。该函数经常与 HSV 色彩空间结合使用,因为 HSV 色彩空间对颜色变化的反应更加直观和自然。使用示例。
2024-09-24 01:00:00
1563
原创 6.7泊松噪声
泊松噪声通常用于模拟光子计数过程中的噪声,例如在低光条件下拍摄的照片中,由于光子计数的统计特性,会产生这种类型的噪声。因此,在进行图像增强、图像去噪等处理时,添加泊松噪声可以帮助评估算法在实际应用中的鲁棒性。
2024-09-23 01:00:00
2227
原创 10.3拉普拉斯金字塔
拉普拉斯金字塔(Laplacian Pyramid)是一种图像表示方法,常被用于图像处理和计算机视觉领域。它是基于高斯金字塔的一种变换形式,主要用于图像融合、图像金字塔的构建等场景。
2024-09-23 00:45:00
1872
原创 11.2开运算 闭运算 顶帽 黑帽
•开运算:先腐蚀后膨胀,用于去除小的噪声点。•闭运算:先膨胀后腐蚀,用于连接接近的物体。•顶帽变换:原图像减去开运算的结果,用于突出细节。•黑帽变换:闭运算的结果减去原图像,用于突出阴影区域。
2024-09-22 05:30:00
1037
原创 9.7floodFill图像分割
Flood Fill(洪水填充)是一种常用的图像处理技术,用于填充一个连通区域的颜色或者灰度值。在OpenCV中,可以使用floodFill函数来实现这一功能。Flood Fill算法常用于图像分割,尤其是在用户交互式标记或自动分割任务中。这个函数常用于图像分割任务,例如填充选定区域、对象分割等。floodFill 函数的工作原理类似于绘画软件中的“油漆桶工具”,它会从给定的起始点开始,查找具有相似颜色的所有相邻像素,并将它们的颜色替换为新颜色。
2024-09-21 07:15:00
912
原创 7.6opencv中(基于C++) 镜像图像
在OpenCV中,镜像图像指的是沿水平轴或垂直轴翻转图像。这对于预处理图像、数据增强或者实现某些视觉效果非常有用。OpenCV提供了flip函数来实现图像的翻转操作。
2024-09-20 02:45:00
665
MFC编写一个对话框应用程序CMFC-Li6-4-学生信息Dlg,对话框中有一个列表框,当用户单击列表框中的一个列表项(一位学生
2024-07-21
基于对话框的MFC,用单选按钮和多选按钮来控制画笔颜色,将画笔颜色显示在picture控件上
2024-07-21
基于对话框的MFC下,利用Cimage类将读取的图像显示在CPictureCtrl控件上
2024-07-18
MFC简单运用单选框按钮、时间列表框、编辑框、下拉列表框等控件编写的学生基本信息管理界面,注意是界面
2024-07-16
数字图像处理-人脸识别,在VS2013中编译C++的.cpp源文件,调取opencv图形处理库,对lena照片进行人脸识别
2024-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅