基于Matlab实现硬币计数

目录

一、对图像进行灰度处理

二、降噪处理

三、二值化处理

四、填充洞

五、创建结构元素并进行腐蚀运算

六、检测二值图像中连通域的个数 

完整代码(和前面一样):


本文介绍了使用matlab软件对图像进行基本处理。包括读取目标图像文件,将RGB图像转换为灰度图,填充像素,腐蚀像素,实现计数等问题。

实验中需要用到硬币识别,查了很多资料其实也不是特别理想,只能说相对来说效果还行。

以及对图片进行降噪操作。没有使用开运算和闭运算,只使用了腐蚀运算,效果不好的话可能需要调一下结构元素的大小。

一、对图像进行灰度处理

改进了一下灰度处理的判断方法。

%1.灰度处理
[m,n,l] = size(handles.img4);%检测图片的规格
if l == 3
    handles.img4 = rgb2gray(handles.img4);    %如果为彩色图 则转化为灰度图
else
    handles.img4=handles.img4;
end

二、降噪处理

使用madjust进行灰度调整 

medfilt2用于进行中值滤波处理

%2.降噪处理
Image=handles.img4;
Image= imadjust(Image,stretchlim(Image),[0 1]);
Image=medfilt2(Image,[5 5]);%中值滤波

  • 8
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OpenMV是一款开源的基于微控制器的计算机视觉平台,主要用于物联网(IoT)设备中的实时图像处理和机器视觉应用。对于红色色块的阈值调节,OpenMV库通常提供颜色检测功能,如HSV(色度、饱和度、值)颜色空间,可以帮助你设置红色范围。 以下是基本步骤: 1. **导入必要的库**:在OpenMV代码中,首先需要包含处理颜色和图像的基本库,如`cv`(计算机视觉)或`color`模块。 ```python import sensor, image, color ``` 2. **配置相机**:初始化并配置摄像头。 ```python sensor.reset() # Initialize the camera sensor. sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or other supported formats). sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA or higher for better color accuracy. ``` 3. **设置颜色范围**:定义红色的HSV阈值,例如,你可以选择大约(0, 70, 70)到(10, 255, 255),其中第一个参数是 Hue(色调),后两个是 Saturation(饱和度)和 Value(亮度)。 ```python red_lower = (0, 70, 70) red_upper = (10, 255, 255) ``` 4. **创建颜色掩码**:使用`image.colorthresh()`函数创建一个二进制图像,只保留红色区域。 ```python mask = image.color_threshold(image, red_lower, red_upper, color.RED) ``` 5. **查找色块**:通过`find_contours()`函数找到图像中的红色区域,并根据需求调整大小或过滤结果。 ```python contours = image.find_contours(mask, 0.9) # Threshold is a percentage of contour area. ``` 6. **处理色块**:对每个找到的色块进行进一步的操作,比如计数、跟踪或标记等。 调节阈值可能需要反复试验,因为实际效果会依赖于光照条件、目标物体的颜色分布以及传感器的质量。如果你遇到挑战,可以尝试微调HSV范围、对比度调整或其他滤波技术。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值