毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

C++简单几何图形的识别和编辑系统设计+PPT演示 第6页

更新时间:2010-2-24:  来源:毕业论文
C++简单几何图形的识别和编辑系统设计+PPT演示 第6页
 //  判断该圆是否与指定图形相同
    //      将指定图形强制转化为CCircle类型,比较其参数圆心坐标和半径,
//      若小于指定阈值,则返回Ture,否则返回False。
    bool similarWith(CShape * argShape);
    // 合并同一圆上的两个圆弧
    //     若目标图形与该图形属同一圆,进行合并,返回True;
//     否则返回False。
    void mergeWith(CShape * argShape);
    // 判断是否选择该圆进行编辑。
    //     计算指定点(x, y)到圆心的距离,并与半径比较,
//     如果小于指定阈值则返回True,否则False。
    bool isClickOnShape(int x, int y);
    // 取得鼠标形状。
    //     圆上点时返回水平的双向箭头形状表示改变半径;
//     圆心时返回垂直的四个方向箭头的形状表示移动
    TCursor getCursor(int x, int y);
    // 更新圆
    bool update(int x, int y);
};
4. 图形容器类(CShapes)
4.1  描述
图形容器类是图形类的集合类,由C++ Builder的TList继承得到。用来组织对图像的识别结果、组织当前编辑工作的图形对象集。提供添加图形、删除图形、图形编辑等接口。
4.2  实现
class CShapes : public TList {
  public:
    /* 初始化 */
    CShapes();
    // 从TreeView得到Shapes
    CShapes(TTreeView * tree);
    //在目标位图上画出所有的图形
    void drawShapes(Graphics::TBitmap * argDest);
    //描述图形
    void discript(TTreeView * tree);
};
5. 点类(CPoint)
5.1  描述
点类对于与图像上的前景点。由于识别时需要判断是否为交点,在一般的点的基础上增加是否为交点的属性。由C++ Builder的TPoint继承得到。
5.2  实现
class CPoint : public TPoint {
  public:
    /* 初始化 */
    CPoint() {isCrossPoint = false; };
    CPoint(int argx, int argy, bool isCross);
    CPoint(int argx, int argy, Graphics::TBitmap * argImg);
    /* 属性:是否为交点 */
    bool isCrossPoint;
};
6. 单义域类(CSegment)
6.1  描述
在“基于单义域的图形识别算法”中,单义域和多义域的唯一区别就是多义域不是单一的几何元素,其在存储结构上是一样的,在本系统中,都由CSegment类实现,姑且命名为单义域类。
单义域类为点的集合类,由C++ Builder的TList类继承得到。提供添加点、删除点、判断该单义域是否有识别价值、识别该单义域等接口和方法。
6.2  实现
class CSegment : public TList {
  public:
    /* 初始化 */
    CSegment(CPoint * p);
    /* 识别该单义域:实现算法中对单义域的识别部分 */
    //  如果识别成功(得到圆或线段)返回True,否则返回False
    bool recognize();
    /* 尝试添加新的点到该单义域 */
    //  判断该点是否属于该单义域并确定是在头部还是在尾部,并将其插入到适当位置;如果该点为交点,则将相应的方向关闭增长;若加入成功返回True,否则返回False。
    bool addNewPoint();
    /* 判断该单义域是否有识别价值 */
    // 如果该单义域含有的点数太少,则没有价值返回False,否则返回True。
    bool checkValue();
    /* 属性:识别出的图形 */
    CShape * shape;
};
7. 基于单义域识别类(CSegments)
7.1  描述
基于单义域识别类是实现“基于单义域的直线和圆识别算法”的主要类。它实现了对目标图像的分割、对分割结果的显示、对识别得到的多义域进行分割、对单义域识别结果的总体考虑,最终得到识别结果集。
基于单义域识别类同时是单义域的集合类,由C++ Builder的TList类继承得到。用来组织对图像的单义域分割后的结果。。
7.2  实现
class CSegments : public TList {
  public:
    /* 构造和析构函数 */
    CSegments();
    ~CSegments();
    /* 扫描图像,得到多义域 */
    // 从上往下,从左往右扫描图像,对于每一个前景点
    //     1。生成新的CPoint实例
    //     2。对于本类中的所有单义域,将该点尝试加入
    //     3。如果加入失败,以该点为头生成新的单义域并加入。
    void segmentize(Graphics::TBitmap * argSrc);
    /* 在指定的位图上显示分割得到的多义域、单义域 */
    void displaySegments(Graphics::TBitmap * argDes);
    /* 识别该集合中的元素 */
    //  1。调用单义域的checkValue(),如果得到False,删除该单义域;
    //  2。调用单义域的recognize(),如果返回False,对该单义域进行分割;
//     将新得到的2个单义域取代当前的单义域,并进行识别
//  3。所有的单义域识别完毕后,对各个单义域的识别结果进行合并
//  4。返回得到的图形容器类。
    CShapes * recognize();
    /* 删除集合中的指定位置的元素 */
    void removeItemOnly(int index);
    void removeItemAndFreePoints(int index);
};
8. 霍夫变换识别直线类(CHTLine)
8.1  描述
实现霍夫变换识别直线算法。
8.2  实现
class CHTLine {
  public:
    /* 构造和析构函数 */
    CHTLine ();
    ~ CHTLine ();
    /* 对源位图按照直线识别算法进行霍夫变换 */
    //  argRho, argTheta分别是对  和  的分割的份数。
    void recognize(Graphics::TBitmap * argSource, int argRho, int argTheta);
    /* 在目标位图上显示参数坐标的信息 */
    //  以参数坐标的最大值为灰度最大值,按比例灰度在位图上显示。
    void displayPramater(Graphics::TBitmap * argDest);
    /* 按照argRate指定的概率取得识别出的直线列表 */
    void getLines(TList * argList, double argRate);
};
9. 霍夫变换识别圆类(CHTCircle)
9.1  描述
实现霍夫变换识别圆算法。
9.2  实现
class CHTCircle {
  public:
    /* 构造和析构函数 */
    CHTCircle ();
    ~ CHTCircle ();
    /* 对源位图按照圆的识别算法进行霍夫变换 */
    void recognize(Graphics::TBitmap * argRes);
    /* 在目标位图上显示参数坐标的信息 */
    //  以参数坐标的最大值为灰度最大值,按比例灰度在位图上显示参数坐标中指定半径的二文平面的数据。
    void displayPramater(Graphics::TBitmap * argDest, int argR);
    /* 按照argRate指定的概率取得识别出的直线列表 */
    void getCircles(TList * argList, double argRate);

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

C++简单几何图形的识别和编辑系统设计+PPT演示 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。