*************第一 窗口初始化****************
*关闭已经打开的窗口
dev_close_window ()
*关闭程序计数器,图形变量更新,窗口图形更新
dev_update_off ()
*读取一张图像
read_image (Image,'2.bmp')
*获取图像大小
get_image_size (Image, Width, Height)
*打开新的窗口
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
*设置区域填充方式
dev_set_draw ('margin')
*设置线宽度
dev_set_line_width (2)
*设置输出对象显示颜色数目
dev_set_colored(12)
*******************第二 图像预处理**********************
*优化FFT的速度
optimize_rft_speed (Width, Height, 'standard')
Sigma1 := 10.0
Sigma2 := 2.0
*构建高斯滤波器
gen_gauss_filter (GsFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)
*构建高斯滤波器
gen_gauss_filter (GsFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)
*两个滤波器相减
sub_image (GsFilter1, GsFilter2, Filter, 1, 0)
********************第三 开始处理图像*************
* Image Acquisition 01: Code generated by Image Acquisition 01
ImageFiles := []
ImageFiles[0] := '1.bmp'
ImageFiles[1] := '2.bmp'
for Index := 0 to |ImageFiles| - 1 by 1
*读取一张图像
read_image (Image, ImageFiles[Index])
*将RGB彩色图转化为灰度图
rgb1_to_gray (Image, Image)
*对灰度图进行反选
invert_image(Image, ImageInvert)
*将图像转化为频域图像
rft_generic (ImageInvert, ImageFFT, 'to_freq', 'sqrt', 'complex', Width)
*将频域图像和滤波核进行卷积运算
convol_fft (ImageFFT, Filter, ImageConvol)
*将频域图像转化为空间域图像
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
*创建一个ROI
gen_rectangle1(Rectangle,30,25,450,610)
*将ROI区域的图像剪切
reduce_domain(ImageFiltered, Rectangle, ROI)
*中值滤波
median_image(ROI, ImageMedian, 'circle', 20, 'mirrored')
*使用高斯核进行图像平滑
smooth_image (ROI, ImageSmooth, 'gauss', 8)
*通过阈值分割出缺陷区域
threshold (ImageSmooth, Regions, -0.0016783, -0.0006434)
*对缺陷区域进行连通处理
connection(Regions, ConnectedRegions)
*对区域进行膨胀操作
dilation_circle (ConnectedRegions, RegionDilation, 5)
*过滤出指定面积大小的缺陷
select_shape (RegionDilation, SelectedRegions, 'area', 'and', 800, 99999)
*根据区域生成XLD轮廓
gen_contour_region_xld (SelectedRegions, Contours, 'border')
*将XLD拟合成圆
fit_circle_contour_xld (Contours, 'atukey', -1, 2, 0, 5, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
*生成一个圆对象
gen_circle_contour_xld (ContCircle, Row, Column, Radius+20, 0, 6.28318, 'positive', 1)
*显示图像
dev_display (Image)
*显示圆标记
dev_display(ContCircle)
stop()
endfor
手机摄像头图像表面的轻微缺陷检测
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...