• 图像处理笔记(十六)


    XLD相关

    1. threshold_sub_pix(Image, Edges, Filter, alpha, Low, High)
      根据阈值提取单通道图像的XLD轮廓,
      当灰度值小于Low时直接拒绝,
      当灰度值大于High时直接接受为边缘,
      当灰度值在Low和High之间的时候,这个点与已经确认为边界的点相连接时,也成为轮廓上的点。

    2. gen_contour_region_xld(Region, Contours, Mode)
      提取区域的亚像素边缘。
      Mode可选border, center, border_holes。
      前两种的区别在于border以区域的外边界点为边缘点,center以区域的边界点的中心为边缘点,就最终提取的效果来看,border生成的边缘会靠外面一点。

    图中红色区域是目标区域,白色轮廓线是使用border的效果,青色轮廓线是使用center的结果,而使用border_holes会导致区域中一些很小的孔洞也被圈出来,在这个例子中,其实是不需要的部分。

    1. gen_contour+polygon_xld(Contour, Row, Col)
      生成指定形态的亚像素轮廓。
      Row和Col可以是Tuple,通过指定多个点,可以生成指定形状的轮廓,如果需要封闭,则首尾是相同的点。至少四个点可以生成一个封闭的三角形轮廓。

    2. gen_parallel_contour_xld(Contours, ParallelContours, Mode, Distance)
      根据指定的方式生成平行于原来的xld轮廓且距离为Distance的xld轮廓。
      这里的Mode设置为regression_norla表示回归方式,针对任意的xld轮廓都能用;而gradient和contour_normal需要xld具有方向性,对于没有方向性的xld不适用。

    3. paint_region(Region, Image, ImageResult, Grayval, Type)
      overpaint_region(Image, Region, Grayval, Type)
      这两个都是将图片的指定区域上色,虽然定义上写的是Grayval,但是其实他们不只是能处理灰度图像,针对三通道的图像,只要将Grayval给成一个Tuple,也是能够上色的。
      有一点需要注意,图片是几通道的,Grayval就得是多长的数组,如果不对应的话,比如三通道图片只给一个value,就会出错。

    4. area_center_xld和area_center_points_xld
      分别是求取xld和xld点云的中心和面积。
      xld和xld点云的区别在于:
      例如一个由四个点围四边形,点云只会计算那四个点,而单纯的xld会考虑整个围起来图形去求面积

    5. test_self_intersection_xld(XLD, CloseXLD, DoesIntersect)
      判断xld是否自相交。
      测试了一下,针对一下两种图像,分别是不相交和相交:

    * 非自相交。虽然这是一个收尾点相同的封闭矩形,但是它不是自相交的。
    gen_contour_polygon_xld(Contour, [0, 0, 10, 10, 0], [20, 50, 50, 20, 20])
    * 自相交
    gen_contour_polygon_xld(Contour, [5, 5, 10, 10, 4], [20, 50, 50, 20, 20])
    
    1. 获取xld相关属性的算子中,有一些针对自相交的xld没有意义:
      orientation_xld:获取xld的方向,
      circularity_xld:获取xld的圆度,
      convexity_xld:获取xld的凸性,
      compactness_xld:获取xld的紧密度,
      diameter_xld: 求取xld上距离最远的两个点,
      moments_xld:获取xld封闭区域的二阶矩

    2. gen_ellipse_contour_xld(ContEllipse, Row, Column, Phi, Radius1, Radius2, StartPhi, EndPhi, PointOrder, Resolution)
      生成椭圆形xld,
      中心点坐标(Row, Column),
      长短半轴长:Radius1, Radius2,
      长半轴相对于x轴正半轴旋转角度为Phi,
      起始点和中心的连线相对于长半轴的旋转角度为StartPhi,
      终止点和中心的连线相对于长半轴的旋转角度为EndPhi,
      最近的两个点之间的距离为Resolution,
      PointOrder规定了椭圆上点的排列方式,也就是椭圆要顺时针画还是逆时针画
      前五个参数定了椭圆的形状和位置,后四个参数定了椭圆上点的多少

    3. gen_polygons_xld(Contours, Polygons, Type, Alpha)
      根据圆弧生成多边形,即用一个多边形来拟合这个圆弧。当Alpha越小时,这个多边形越接近圆弧

    4. 弧度转角度:deg

    5. concat_obj(Objects1, Objects2, ObjectsConcat)
      将两个对象结合在一起,可以用来结合之前我们创建的那些xld

    
    # 图像运算
    这部分以前已经看过一些了,对新的内容做一定补充。
    1. 图像乘法可以用在利用0,1组成的掩膜图像与待处理图像相乘,来遮住图像指定的部位。
    ```
    read_image(Image, '1')
    get_image_size(Image, Width, Height)
    dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
    
    dev_display(Image)
    
    rgb1_to_gray(Image, GrayImage)
    threshold(GrayImage, Region, 30, 255)
    connection (Region, ConnectedRegions)
    select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 15000, 9999999)
    complement(SelectedRegions, RegionComplement)
    
    paint_region(SelectedRegions, GrayImage, ImageResult, 1, 'fill')
    paint_region(RegionComplement, ImageResult, ImageResult2, 0, 'fill')
    mult_image(GrayImage, ImageResult2, ImageResult1, 1, 0)
    ```
    
    2. 图像除法可以用来校正非线性影响
    这里面用到了一个gen_image_gray_ramp(ImageGrayRamp, Alpha, Beta, Mean, Row, Column, Width, Height)的算子,用来生成灰度斜坡图像,作为图像除法的除数。
    这个图像的灰度分布应当类似于原图像。
    这个算子生成的图像灰度根据下面的公式计算得出:
    $$
    ImageGrayRamp(r, c) = Alpha(r- row) + Beta(c - Column) + Mean
    $$
    
    3. 图像的位操作
    算子以bit开头
    
    4. 图像的仿射变换——平移,缩放,旋转(P149)
    paint_gray(ImageSource, ImageDestination, MixedImage)
    将图像覆盖到另一个图像上,这里是直接覆盖,不会做灰度的相加。
    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 相关阅读:
    [C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例
    玩转Asp.net MVC 的八个扩展点
    float实例讲解
    C#高性能TCP服务的多种实现方式
    如何把SQLServer数据库从高版本降级到低版本?
    ASP.NET MVC Area使用-将Area设置成独立项目
    如何使用ping和tracert命令测试网站访问速度
    ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)
    MVC Action Filter
    c#中单元测试
  • 原文地址:https://www.cnblogs.com/yutou2016/p/11165657.html
Copyright © 2020-2023  润新知