一、简介
HDevelop 是一款收费的图像处理/计算机视觉嵌入式开发工具,提供大量图像处理相关算法库、方便易用的可视化界面、可以转化为各种嵌入式平台相应代码的高级图像处理脚本语言和可以在 Ubuntu、Windows 和 macOS 等主流操作系统下使用。而且 HDevelop 也适合初学者学习机器视觉,因为它非常方便使用、有良好的文档说明、有交互式学习例子,既可以做多个图像处理/计算机视觉项目,也可以用来学习。
二、使用 HDevelop 实现边缘检测
边缘在图像处理中属于常见的识别特征,通常不同边缘检测方法会基于不同重要的特性来执行。这里我们用 Canny 边缘检测算法,并在 HDevelop 中实现,以下是 Canny 边缘检测算法的流程:
1. 对原始图像设定一个高斯核进行模糊化,从而去除噪声. 2. 使用类似于 Sobel 算子的方法来找到像素点梯度以及方向. 3. 基于之前的邻域,来修剪当前像素点的边缘. 4. 只保留满足最大值或超过高阈值的像素,不设置的话就是保留低于低阈值和高于高阈值之间的像素. 5. 基于连接了两个高强度边缘的像素来进行更加精确的定位(改进算法).
对应 HDevelop 代码如下:
read_image(Image, "monkey.png") rgb3_to_gray(Image, GrayImage) derivate_gauss(GrayImage, DerivGauss, 1, "constant") sobel_amp_orientation(DerivGauss, Amp, Ori, "cyclic", "normalized", "empirical") nonmax_suppression(Amp, Ori, EdgeDir, "no_check", 8, "full") set_draw("margin") set_color("green") set_lut("default") draw_region(EdgeDir, Contours) threshold(Amp, Edge, 50, 100) thin_edge(Edge, ThinEdge) thin_edge(ThinEdge, ThinEdge, "negative") display(ThinEdge)
三、使用 HDevelop 实现形状检测
形状检测是根据给定的形状,对图像中对象进行辨认的任务。很多产品质量检测、机器视觉应用、场景识别、医学影像处理都需要用到形状检测。这里我们用 HDevelop 实现一个简单的形状检测:如果屏幕中有一张红色矩形,则弹出“红色矩形出现”的消息框。
Red := 128 set_color("red") set_draw('margin') device := open_framegrabber('GigE-V-5006', 0,0,0,0,0,0,'default', -1,'false') grab_image_async(Image, device, -1) for i := 0 to 10000 by 1 grab_image_async(Image, device, -1) tuple_mean_value(Image, Gray, Row, Column) dev_update_window(0) if abs(Red-Row)<10 and tuple_abs(Row-Column)<10 and abs(Red-Column)<10 then message('红色矩形出现')
四、结语
在这篇文章中,我们从两个方面介绍了 HDevelop 的使用方法。作为一款强大的图像处理开发软件,它既能够帮助我们完成一些简单的图像处理任务,也能够支持更为复杂的视觉计算项目。希望读者能够通过阅读本文,对此软件有一个初步的了解,并可以在实际开发中快速掌握相关技巧。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/190868.html