程序流程
1.图像采集
2.图像灰度化
3.图像二值化
4.计算所有连通域
5.填充所有孔洞
6.特征提取(面积+圆度)
7.显示定位、面积等
本次实验重点知识:熟悉开发流程
环境
自己的笔记本摄像头,自己的桌子
相关代码:
* 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_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
while (true)
grab_image_async (Image, AcqHandle, -1)
* Image Acquisition 01: Do something
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 208, 255)
connection (Regions, Connection)
fill_up (Connection, RegionFillUp) //填充孔洞
select_shape (RegionFillUp, SelectedRegions, ['area','circularity'], 'and', [4441.62,0.7284], [50000,1])
dev_display (Image)
dev_display (SelectedRegions)
area_center (SelectedRegions, Area, Row, Column)
disp_message (WindowHandle,'面积:'+Area+'坐标:('+Row+','+ Column+')', 'window', 12, 12, 'black', 'true') //显示坐标面积之类的
endwhile
close_framegrabber (AcqHandle)
识别效果
效果1:
换个位置:
再换位置