程序流程
1.图像采集
2.图像灰度化
3.图像二值化
4.填充所有孔洞
5.图像形态学开运算
6.计算所有连通域
7.特征提取(面积+圆度)
8.显示定位、面积等
本次实验重点知识:图像形态学的应用
环境
笔记本电脑折叠90度,利用其摄像头完成实验平台搭建,在扩展屏上进行代码编辑
相关代码:
* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '[0] ', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
dev_update_window ('off')
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
while (true)
dev_update_window ('off')
grab_image_async (Image, AcqHandle, -1)
* dev_display (Image)
rgb1_to_gray (Image, GrayImage)
* dev_display (GrayImage)
threshold (GrayImage, Regions, 180, 255)
fill_up (Regions, RegionFillUp)
* dev_display (Regions)
opening_circle (RegionFillUp, RegionOpening, 6) //开运算
* dev_display (RegionOpening)
connection (RegionOpening, ConnectedRegions)
* dev_display (ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [15111.3,0.7419], [17560.7,2])
* dev_display (SelectedRegions)
area_center (SelectedRegions, Area, Row, Column)
disp_message (WindowHandle, '面积:'+Area+' 中心位置:('+Row+','+Column+')', 'window', 0, 0, 'black', 'true')
dev_display (Image)
dev_display (SelectedRegions)
endwhile
close_framegrabber (AcqHandle)
实验效果
原图像: