在 VisualApplets 中的实现

在“NormalizedcrossCorreslation.va”中,根据公式 55 使用 NCC 算法在图像中识别对象。
在图 409 中,您可以看到“NormalizedCrossCorrelation.va”的基本设计结构。

“NormalizedCrossCorrelation.va”的基本设计结构

图 409。“NormalizedCrossCorrelation.va”的基本设计结构


在一幅来自 Camera Link 基本配置 RGB 相机的图像中, 定义了尺寸为 12x12 像素的图像核, FIRkernelNxM 算子 12x12。核大小取决于要识别的对象。 该对象与公式 中的 55参考图像相同。 使用算子选择一个颜色分量(此处为红色), SelectComponent 以便根据公式在 55 HierarchicalBox NCC中通过 NCC 算法识别对象。结果是一个与原始输入图像大小相同的二值图像,在识别出的对象位置处值为“1”,在任何其他位置处值为“0”,该图像通过 DMA 发送到 PC。 此示例针对 RGB 测试图像“PCB.tif”进行配置,您可以在 VisualApplets 安装目录下的 examples\Processing\ObjectFeatures\NormalizedCrossCorrelation 找到它。 该图像的尺寸为 1024x712 像素。如图 410 所示,显示了测试图像。

测试图像“PCB.tif”

图 410. 测试图像“PCB.tif”


PCB 板左下角的六个小孔是本示例中要识别的对象。该对象的尺寸此处为 12x12 像素。
在盒子 NCC(参见图 409)的设计中,实现了根据公式 55 定位这些对象的算法。有关对应公式部分的更多信息,请参阅链接和 HierarchicalBoxes 旁边的注释框。在图 411 中,您可以看到 HierarchicalBox NCC 的内容。

HierarchicalBox NCC 的内容

图 411. HierarchicalBox NCC 的内容


您可以按照以下说明将设计示例调整为您的图像和所选对象。如果您想使用灰度图像而不是 RGB 图像,只需将算子 BaseRgbCamera 替换为算子 BaseGrayCamera,并删除算子 SelectComponent。

  1. 将算子 FIRkernelNXM_12x12 的大小调整为您要在图像中识别的对象的尺寸。

  2. 在“Properties”下的 HierarchicalBox NCC 上点击“鼠标右键”,您可以设置要查找的对象的像素数“K”。对象大小为 12x12 时,K 为 144。在“Properties”下,您还可以调整二值化阈值。 此阈值用于在结果图像中用“1”可视化对象的位置。

  3. 在 HierarchicalBox NCC 中的 CONST 算子 One 的输出端,将核的列数和行数调整为对象尺寸。

  4. 加载要识别的对象的像素值文件(即 ) 至 FIRoperatorNxM IxR 在 HierarchicalBox 中 NCC。您可以使用程序 "NCC.m" 创建该文件("R.txt")。

  5. 将同 一个文件加载到 HierarchicalBox Sigma_R 中 HierarchicalBox NCC 内的 FIRoperatornxM Rmean_Mult_K 中。

  6. 将文件 "Rpower2.txt"(使用 Matlab 程序 "NCC.m" 创建)加载到 FIRoperatorNxM Sum_R_R 在 HierarchicalBox 中 Sigma_R。 该文件的内容为对象像素值(除以 2)的平方 .

在 HierarchicalBox 中 Division (见图 411)公式 的 55 最终结果通过除法运算计算得出 DIV中。您可以看到该方框的内容 Division 中看到框 412.

HierarchicalBox Division 的内容

图 412. HierarchicalBox Division 的内容


除法运算使用六个小数位执行,即 的结果介于 -64 和 64 之间,而不是 -1 和 1。为了可视化识别出的对象的位置,结果图像使用 IS_GreaterEqual 算子 阈值进行二值化处理。在此示例中,阈值设置为 50。您可以直接在算子中更改该值,或者如上所述通过“右键单击”方框 NCC进行更改。发送到 PC 的结果图像如图 413所示。PCB 板左下角小孔位置处的像素(见图 410)获得值“1”,所有其他像素获得值“0”。结果图像通过 DMA 发送到 PC。或者,它也可以作为后续图像处理步骤的输入。

对象位置处带有“1”的结果图像(缩放视图)

图 413. 在对象位置带有“1”的结果图像(缩放视图)