首页 > 其他分享 >Halcon 矫正图像 图像矫正

Halcon 矫正图像 图像矫正

时间:2024-11-08 20:19:41浏览次数:3  
标签:矫正 ROI XLD 边界 线段 xld Halcon 图像 Row

目录

1、图像预处理和形状校正

2、源码 

1.原图

2.矫正后的图像

3.示例代码 


        在图像处理领域中,Halcon是一种广泛使用的编程语言和库,它提供了丰富的图像处理功能。本文将详细解析一段Halcon代码,这段代码主要用于图像处理和形状校正。代码分为两部分,本文将逐一解析。

1、图像预处理和形状校正

1. 初始化变量

HomMat2DInvert := []
Row_T := []
Col_T := []

        首先,代码初始化了三个空变量,这些变量将在后续的图像处理过程中用于存储变换矩阵和坐标值。

2. 形状特征提取

region_features (ROI, 'rectangularity', Value)
    if (Value > RectY)
        HomMat2DInvert := []
        smallest_rectangle1 (ROI, Row_T, Col_T, Row2, Column2)
        reduce_domain (Image, ROI, ImageReduced)
        crop_domain (ImageReduced, ImagePart)
        move_region (ROI, ROIM, -Row_T, -Col_T)
    else
        * 矫正
        boundary (ROI, RegionBorder, 'inner')
        gen_contour_region_xld (RegionBorder, Contours, 'border')
        segment_contours_xld (Contours, ContoursSplit, 'lines', 15, 4, 2)
        area_center (ROI, Area, Row, Column)
        select_shape_xld (ContoursSplit, XLD1, 'rect2_phi', 'and', rad(-20), rad(20))
        * 标记
        UT := 0
        DT := 0
        LT := 0
        RT := 0

        通过region_features函数提取ROI(感兴趣区域)的矩形度特征。如果ROI的矩形度大于某个阈值RectY,则进行简单的矩形化处理,提取最小矩形并调整图像域。否则,进入校正处理流程。

3. 校正处理

boundary (ROI, RegionBorder, 'inner')
gen_contour_region_xld (RegionBorder, Contours, 'border')
segment_contours_xld (Contours, ContoursSplit, 'lines', 15, 4, 2)

        在校正处理部分,代码首先通过boundarygen_contour_region_xld函数生成ROI的轮廓,并使用segment_contours_xld函数将轮廓分割为线段。


4. 轮廓筛选和拟合

接下来,代码通过多个步骤筛选和拟合轮廓,以确定ROI的上下左右边界。

  • 上边界:通过筛选和拟合,确定上边界的线段,并处理特殊情况(多条线段)。
  • 下边界:类似地,确定下边界的线段。
  • 左边界:确定左边界的线段。
  • 右边界:确定右边界的线段。

每个方向的边界处理都涉及轮廓筛选、长度计算和线段拟合。例如,上边界的处理如下:


select_shape_xld (XLD1, XLD, 'row1', 'and', -1, Row)
length_xld (XLD, Length)
tuple_median (Length, Median)
select_shape_xld (XLD, XLD, 'contlength', 'and', max2(200,Median), 999999999)
count_obj (XLD, Num)

        通过筛选和拟合,代码确定了ROI的四个边界,并存储了相关的坐标信息。这些坐标信息将用于后续的图像校正或进一步分析。

5. 特殊情况处理

        在处理上下左右边界时,代码还考虑了特殊情况,如当边界由多条线段组成时,通过排序和选择特定的线段来确定最终的边界。

* 下
select_shape_xld (XLD1, XLD, 'row1', 'and', Row, Row*3)
length_xld (XLD, Length)
tuple_median (Length, Median)
select_shape_xld (XLD, XLD, 'contlength', 'and', max2(200,Median), 999999999)
count_obj (XLD, Num)
   if (Num == 1)
      copy_obj (XLD, XLDDown, 1, 1)
      fit_line_contour_xld (XLDDown, 'tukey', -1, 0, 5, 2, RowBeginDown, ColBeginDown, RowEndDown, ColEndDown, Nr, Nc, Dist)
        else
            DT := 1
            sort_contours_xld (XLD, Sorte

标签:矫正,ROI,XLD,边界,线段,xld,Halcon,图像,Row
From: https://blog.csdn.net/weixin_42215453/article/details/143577480

相关文章

  • LLM | 论文精读 | CVPR | 基于问题驱动图像描述的视觉问答增强引言
    论文标题:EnhancingVisualQuestionAnswering throughQuestion-DrivenImageCaptionsasPrompts作者:Övg̈uÖzdemir,ErdemAkagünd̈uz期刊:CVPR2024引言视觉问答(VisualQuestionAnswering,VQA)是计算机视觉与自然语言处理交叉领域中的典型多模态任......
  • Densenet模型花卉图像分类
    项目源码获取方式见文章末尾!600多个深度学习项目资料,快来加入社群一起学习吧。《------往期经典推荐------》项目名称1.【基于CNN-RNN的影像报告生成】2.【卫星图像道路检测DeepLabV3Plus模型】3.【GAN模型实现二次元头像生成】4.【CNN模型实现mnist手写数字识别】......
  • OpenCV图像处理——基于OpenCV的直线检测与直线拟合
    OpenCV图像处理——基于OpenCV的直线检测与直线拟合前言:本节使用霍夫变换进行直线检测,使用最小二乘法拟合直线。1直线检测直线检测是图像处理中一种常见的任务,旨在从图像中提取出直线。这在许多应用中都很有用,例如道路检测、建筑物轮廓提取、对象检测等。1.1霍夫变换......
  • 《DNK210使用指南 -CanMV版 V1.0》第三十六章 image图像色块追踪实验
    第三十六章image图像色块追踪实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.htm......
  • 【MFC编程(四)】图形图像:CDC类与GDI绘图
    文章目录绘图引擎简介GDI绘图DC设备上下文CDC类HDC和CDC的区别与转换屏幕绘图成员函数绘制点绘制直线绘制矩形绘制椭圆绘制多边形绘制文本绘制位图绘图引擎简介Windows环境下二维绘图引擎有多种选择:GDI、GDI+、DirectDraw、Qt/QPainter、Agg、Cairo、skia、Direct2......
  • Halcon刚性变换
       刚性仿射变换(RigidAffineTransformation)是一种机械视觉和图像处理常用的技术,通常用于在保持物体形状和大小不变的情况下,对物体进行旋转和平移。常见于模板匹配,定位跟随等场景。1:vector_angle_to_rigid(::Row1,Column1,Angle1,Row2,Column2,Angle2:HomMat......
  • 【DL】CAM | 与嵌入的概念相比,图像中有什么相似或不同之处?| 热力图可视化 | python |
    本文将采用像素属性方法嵌入模型输出(Adaptingpixelattributionmethodsforembeddingoutputsfrommodels)的实践。话不多说,先看看效果吧!!!目录1安装pytorch-gradcam2实践① 代码② 效果图“与嵌入的概念相比,图像中有什么相似或不同之处?”为了实现这一点,将创建......
  • 人工智能图像算法:开启视觉新时代的钥匙
    一、引言在当今科技飞速发展的时代,人工智能已经成为了各个领域的热门话题。其中,人工智能图像算法作为人工智能领域的一个重要分支,正以其强大的功能和广泛的应用场景,改变着我们的生活和工作方式。本文将深入探讨人工智能图像算法的重要性以及其在各个领域的应用场景。二、人......
  • python验证码滑块图像识别
    文章目录1、案例图片1、需求说明2、代码实现总结1、案例图片1、需求说明python3.10,写一个滑块验证码的自动化程序。需要一个opencv的函数,能准确的计算,在这同一张图片上,滑块形状和缺口形状的坐标位置及两个形状之间在X轴上的距离。请注意,没有单独的滑块图片,而是......
  • 图像去雾+图像去雨(matlab+python)
    看到许多小伙伴想进行图像去雨,图像去雾的任务,由于以前进行了此类项目,所以在此书写博客进行交流。#去雨前言从静止图像中去除雨水是一项复杂且具有挑战性的任务。雨滴仅影响图像的很小区域,因此导致确定应考虑哪个区域和不应考虑哪个区域的混乱。在本文中,已经实现了一种新......