zoukankan      html  css  js  c++  java
  • 图像边界的提取

         图像边界的提取相对于图像轮廓的跟踪来说,实现起来比较简单。但是我继承了图像轮廓跟踪的类。我们来先看下面一张图,以便对边界提取有一个形象的了解。

         前半部分是图像原图,后一半部分是提取边界后的图行。它的具体实现代码如下:

      

    边界提取事件
     private void Bound_Click(object sender, EventArgs e)
    {
    if (bitMap != null)
    {
    BoundExtract boundExtract
    = new BoundExtract(bitMap);
    boundExtract.Draw();
    Invalidate();
    }
    }

      

    边界提取实现
     1     public class BoundExtract:ImageFeature
    2 {
    3 bool bBound; //是否是边界点的判断
    4
    5 public BoundExtract(Bitmap bitmap):base(bitmap)
    6 {
    7 }
    8
    9 /// <summary>
    10 ///3X3的边界提取
    11 /// </summary>
    12 public void Extract()
    13 {
    14 for(int j=1;j<h-1;j++)
    15 for (int i = 1; i < w - 1; i++)
    16 {
    17 bBound = false;
    18 if (binary[i, j] == 0) continue;
    19 for(int k=-1;k<=1;k++)
    20 for (int l = -1; l <= 1; l++)
    21 {
    22 if (binary[i + k, j + l] == 0)
    23 {
    24 bBound = true;
    25 k = 2;
    26 l = 2;
    27 }
    28 }
    29 if (!bBound) bitMap.SetPixel(i, j, Color.FromArgb(255, 255, 255)); //不是边界点将其置为白色
    30 }
    31 }
    32
    33 public override void Draw()
    34 {
    35 ToBianry();
    36 Extract();
    37 }
    38 }

      

        

  • 相关阅读:
    FATFS 初学之 f_open/ f_close
    前端JQuery(二)
    前端JQuery(一)
    8.22MySQL(五)pymysql模块、sql注入问题
    8.21MySQL(四)基本查询语句及方法、连表、子查询
    8.20MySQL(三)外键
    8.19MySQL(二)
    8.16MySQL(一)
    8.15并发编程(四)
    8.14并发编程(三)
  • 原文地址:https://www.cnblogs.com/sqljiang0916/p/2149437.html
Copyright © 2011-2022 走看看