MATLAB识别实验,基于MATLAB的图像识别

本文介绍了基于MATLAB的图像识别技术在工业包装领域中对药丸进行计数的应用。通过图像预处理(包括转换为灰度图像、中值滤波)、图像分割(阈值选择、边缘检测、膨胀填充、删除不完整边缘)、最终通过bwlabel函数计算药丸数量,实现了准确的药丸计数功能。此外,还展示了如何在Visual C++中设计界面并调用MATLAB引擎进行图像处理。
摘要由CSDN通过智能技术生成

图像的预处理与图像分割都是图像识别的基础。图像识别技术在不同领域的应用,对图像的预处理和图像分割有着不同的技术要求。在现有的实际应用中,数字图像处理技术往往所需处理的图像信息量巨大,同时图像采集装置在采集图像时,受到多种因素的影响,如环境条件、视觉性能、光照强度、温度等。所以图像识别技术更好的应用依然是多学科领域研究的重点。

本节将以图像识别技术在工业包装领域对药丸进行计数的应用实例,介绍如何通过图像识别技术识别给定图像中药品的个数,从而实现药品包装计数的功能。

1.使用MATLAB工具箱函数进行图像处理

(1)读入图像。在MATLAB命令窗口输入如下代码:

>> clear;

>> close all

>> I=imread('pill.png');

>> figure,imshow(I);

运行程序结果,读取的原始图像如图12.7所示。

a4c26d1e5885305701be709a3d33442f.png

(2)由于该图像为彩色RGB格式图像,而将图像转换为灰度图像进行处理,才能充分发挥MATLAB语言进行图像分析的特长。可以通过以下程序代码将图像进行格式转换,原始灰度图像如图12.8所示,转换后图像显示效果如图12.9所示。在MATLAB命令窗口中输入如下程序代码:

>> i=rgb2gray(I);

>> figure, imshow(i);

>> figure,imhist(i);title('直方图');

程序运行结果如图12.8和图12.9所示。

a4c26d1e5885305701be709a3d33442f.png

(3)从灰度图像以及直方图可以判断,图像的灰度值在范围[30

140]之间,灰度值所属区域不到整个范围的一半。为调整图像清晰度,提高图像质量,对图像进行中值滤波处理。在MATLAB命令窗口输入如下指令代码:

>> F0=imadjust(i,stretchlim(i),[0 1]);

>> Ft=medfilt2(F0,[5 5]);

>> figure,imshow(Ft);

>> figure, imhist(Ft);title('直方图');

程序运行,处理后的图像如图12.10和图12.11所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值