org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough
文章目录org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough功能参数固定参数在 XML 中配置动态参数必须通过 pipeline.setProperty() 预先设置例子效果ENDorg.openpnp.vision.pipeline.stages.DetectFixedCirclesHough功能DetectCirclesHough用硬编码在cv-pipeline配置中的参数来检测圆形。DetectFixedCirclesHough用预先动态设置的参数来检测圆形这些参数可以用pipeline.setProperty()先设置好然后再执行DetectFixedCirclesHough。这就实现了动态检测圆形。最小圆心距、最小直径、最大直径不是从 XML 属性中读取而是从 pipeline 的动态属性中获取。这使得参数可以在管道运行时由前置脚本或用户输入动态设定而无需修改管道配置文件。需要根据外部条件如元件型号、相机视野、上一阶段检测结果动态调整圆的搜索范围。避免为不同参数重复编写多个相似的管道。适合与脚本ScriptRun配合先计算出圆的预期尺寸再执行检测。参数固定参数在 XML 中配置参数类型默认值说明dpdouble1.0累加器分辨率与图像分辨率的反比。dp1时分辨率相同dp2时累加器宽高减半。增大可加快检测但可能降低精度。param1double80.0Canny 边缘检测的高阈值。低阈值自动设为param1/2。param2double13.0圆心检测的累加器阈值。值越小检测到的假圆越多值越大只保留最明显的圆。动态参数必须通过pipeline.setProperty()预先设置属性名类型说明DetectFixedCirclesHough.minDistanceint圆心之间的最小距离像素用于避免重复检测。DetectFixedCirclesHough.minDiameterint圆的最小直径像素。小于此直径的圆将被忽略。DetectFixedCirclesHough.maxDiameterint圆的最大直径像素。大于此直径的圆将被忽略。例子图像还是用org.openpnp.vision.pipeline.stages.DetectEdgesCanny的测试图像。cv-pipelinestagescv-stageclassorg.openpnp.vision.pipeline.stages.ImageReadnamereadenabledtruefileD:\3rd\openpnp_prj\openpnp-official\openpnp-test-images\my_test\test_canny_color.pngcolor-spaceBgrhandle-as-capturedfalse/cv-stageclassorg.openpnp.vision.pipeline.stages.ConvertColornamegrayenabledtrueconversionBgr2Gray/cv-stageclassorg.openpnp.vision.pipeline.stages.BlurGaussiannameblurenabledtruekernel-size7property-nameBlurGaussian/cv-stageclassorg.openpnp.vision.pipeline.stages.ScriptRunnamesetParamsenabledtruefileD:\3rd\openpnp_prj\openpnp-official\openpnp-test-images\my_test\set_circle_params.pyargs/cv-stageclassorg.openpnp.vision.pipeline.stages.DetectFixedCirclesHoughnamedetectenabledtruedp1.0param-180.0param-213.0/cv-stageclassorg.openpnp.vision.pipeline.stages.ImageRecallnamerestoreOriginalenabledtrueimage-stage-nameread/cv-stageclassorg.openpnp.vision.pipeline.stages.DrawCirclesnamedrawenabledtruecircles-stage-namedetectthickness2colorr51g0b255a255//cv-stagecv-stageclassorg.openpnp.vision.pipeline.stages.ImageWritenamesaveenabledtruefileoutput_detected_circle.png//stages/cv-pipeline效果自己动态指定参数后找到的圆形位置大小都很准。END