Chƣơng trình thử nghiệm

Một phần của tài liệu Phương pháp đơn giản hóa đường cong và đa giác (Trang 52 - 61)

Chƣơng trình “ Phƣơng pháp đơn giản hoá đƣờng cong và đa giác” có giao diện nhƣ hình .

Chƣơng trình đƣợc xử lý bởi các đƣờng cong đƣợc tạo bởi các hàm sin(x), cos(x), tang(x), square(x), x*x*x, exponent(x).

Hình 3.4 Giao diện của chương trình

Để vẽ đƣợc đƣờng cong, ta cần nhập số điểm để tạo nên đƣờng thẳng với toạ độ X và toạ độ Y tƣơng ứng theo hàm bất kỳ.

Để đơn giản hoá đƣờng cong, vào menu Generalization để lựa chọn các phƣơng pháp đơn giản hoá đƣờng cong. Từ đây, ta có thể lựa chọn giá trị ngƣỡng bất kỳ, rồi kích nút hiển thị để thực hiện việc đơn giản hoá. Sau khi việc đơn giản hoá hoàn thành, có thể tự chọn lại thông số để thu đƣợc đƣờng cong nhƣ mong muốn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

53

Kết quả chạy thử.

Hình 3.5 Đường cong ban đầu với 200 điểm.

Tọa độ X = 18, Y = 8, vẽ trên hàm cos(x)

Hình 3.6 Đường cong được đơn giản hóa bằng phương pháp Angularity

Số điểm của đƣờng cong mới sau đơn giản hóa là: 18 điểm Với giá trị ngƣỡng: 3

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

54

Hình 3.7 Đường cong được đơn giản hóa bằng phương pháp Bandwith

Số điểm của đƣờng cong mới sau đơn giản hóa là: 14 điểm Với giá trị ngƣỡng: 0.1

Hình 3.8 Đường cong được đơn giản hóa bằng phương pháp Douglas_Peucker

Số điểm của đƣờng cong mới sau đơn giản hóa là: 11 điểm Với giá trị ngƣỡng: 0.1

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

55

KẾT LUẬN

Nội dung chính của luận văn nhằm đi sâu nghiên cứu một số phƣơng pháp xử lý đƣờng cong số hóa đƣờng cong chủ yếu nhằm phục vụ cho việc lƣu trữ và xử lý ảnh bản đồ. Các thuật toán đƣợc giới thiệu trong luận văn này là những phƣơng pháp đã đƣợc kiểm nghiệm và hiện đang đƣợc sử dụng rộng dãi trên thế giới, bao gồm các phƣơng pháp làm trơn và đơn giản hóa.

+ Trình bày tổng quan về tổng quát hóa đƣờng cong và những ứng dụng trong xử lý ảnh.

+ Trình bày nội dung chi tiết về các phƣơng pháp đơn giản hóa đƣờng cong nhƣ: Phƣơng pháp điểm thứ n, phƣơng pháp khoảng cách vuông góc, phƣơng pháp Angularity, phƣơng pháp Reuman-Witkam, phƣơng pháp Bandwith, phƣơng pháp hình tam giác, phƣơng pháp Lang, phƣơng pháp Douglas-Peuker và ứng dụng của nó trong việc giải quyết một số khó khăn trong quá trình xử lý và hiện thị bản đồ.

+ Đánh giá các ƣu nhƣợc điểm của các phƣơng pháp đơn giản hóa đƣờng cong tự động.

+ Chƣơng trình đƣợc viết bằng ngôn ngữ Visual C++ 6.0 chủ yếu là mô phỏng các thuật toán bẵng dữ liệu là các đƣờng cong đã có sẵn với ba thuật toán đơn giản hóa. Đơn giản hóa đƣờng cong đƣợc ứng dụng rất có hiệu quả trong các lĩnh vực khác nhau, bao gồm các hệ thống thông tin địa lý (GIS), đồ họa, xử lý ảnh, và nén dữ liệu. Một trong những ứng dụng quan trọng nhất là để khái quát hóa bản đồ. Các thuật toán này trong tƣơng lai khi đƣợc áp dụng vào tệp dữ liệu ảnh bản đồ sinh ra từ các tệp chuẩn sẽ thu đƣợc kết quả rất tốt phục vụ cho công việc xử lý tự động hóa ảnh bản đồ Việt Nam.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

56

PHỤ LỤC CỦA CHƢƠNG TRÌNH

Vì phần chƣơng trình nguồn chi tiết rất phức tạp và dài nên phần này em chỉ giới thiệu lớp ( Cgeneration ) bao gồm các thủ tục phục vụ cho việc cài đặt các thuật toán nằm trong phần tổng quát hoá đƣờng cong đƣợc cài đặt bằng ngôn ngữ Visual C++

. (adsbygoogle = window.adsbygoogle || []).push({});

class CGeneration : public CDialog {

// Construction public:

int Hienthilai;

int Bandwith( Point *P, int size);

int Douglas_Peucker(Point *P, int size); int KindView;

int m_epsilon;

double Distance(Point, Point, Point); Point* Avrage( Point*, int);

int Angularity( Point *p, int size); double Angular(Point, Point, Point); CGeneration(); // standard constructor // Dialog Data

//{{AFX_DATA(CGeneration)

enum { IDD = IDD_DIALOG_TOLERANCE }; double m_tolerance;

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

57

// Overrides

// ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CGeneration)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

//}}AFX_VIRTUAL // Implementation protected:

// Generated message map functions //{{AFX_MSG(CGeneration)

afx_msg void OnOk();

afx_msg void OnRedisplay(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} #endif // !defined(AFX_GENERATION1_H__EA29424E_335B_11D4_89FE_C98A9 BA78D23__INCLUDED_)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

58

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Đỗ Năng Toàn, Phạm Việt Bình, Giáo trình Xử lý ảnh, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội 2008.

[2] Đỗ Lƣu Thái Hoàng, “Đơn giản hóa đƣờng cong và ứng dụng trong xử lý ảnh”, Luận văn tốt nghiệp, Tháng 5/2010.

Tiếng Anh

[3] Byron Nakos, 1999. Comparison of Manual Versus Digital Line Simplification, Proceedings of 3rd Workshop on Automated Map Generalization. International Cartographic Association. Commission of Map-Generalization,

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.8976, 12/08/2011. [4] Dan Sunday, Polyline Simplification,

http://softsurfer.com/Archive/algorithm_0205/algorithm_0205.htm, 25/3/2012 (adsbygoogle = window.adsbygoogle || []).push({});

[5] Douglas, D and T.Peucker 1973.” Algorithms for the Redution of the Number of Points Required to Represent a Digited Line or Its Caricature. ”The Canadian Cartographer, vol 10, pp. 112-122.

[6] Mc Master, R.1987 “Automated Line Generalization”, Cartographic, vol 24, pp 74-111.

[7] M Visvalingam and J D Whyatt, (1990), The Douglas-Peucker Algorithm for Line Simplification: re evaluation through visualization, CISRG Discussion Paper Series No 8, University of Hull,

http://www2.dcs.hull.ac.uk/CISRG/publications/DPs/DP6/DP6.html, 10/08/2011. [8] Peucker, T.1976. “A Theory of the Cartographic Line”, Intrnational

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

59

[9] Şadan Ekdemir (2011), Efficient Implementation of Polyline Simplification for Large Datasets and Usability Evaluation,

http://uu.diva-portal.org/smash/record.jsf?pid=diva2:444686, 03/06/2012.

[10] Wenzhong Shi and ChuiKwan Cheung (2006), Performance Evaluation of Line Simplification Algorithms for Vector Generalization, The Cartographic Journal, Vol. 43, No. 1, The British Cartographic Society,

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

60

MỤC LỤC

PHẦN MỞ ĐẦU ... 1

CHƢƠNG I ... 6

KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ ĐƠN GIẢN HÓA ĐƢỜNG CONG ... 6

1.1. Giới thiệu chung về xử lý ảnh. ... 6

1.1.1. Tổng quan về một hệ thống xử lý ảnh. ... 6 1.1.2. Các vấn đề cơ bản của xử lý ảnh ... 9 1.1.2.1. Biểu diễn ảnh ... 9 1.1.2.2. Khôi phục ảnh. ... 11 1.1.2.3. Biến đổi ảnh. ... 12 1.1.2.4. Phân tích ảnh ... 12 1.1.2.5. Nhận dạng ảnh ... 13 1.1.2.6. Nén ảnh ... 14 1.1.3. Ảnh nhị phân ... 15 1.2. Các kỹ thuật xử lý ảnh. ... 16 1.2.1. Các phép toán tiền xử lý ... 16 1.2.2. Kỹ thuật dò tìm đƣờng cong ... 17

1.3. Đơn giản hóa đa giác và ứng dụng. ... 18

1.3.1. Khái niệm ... 18

1.3.2. Tổng quan về đơn giản hóa đa giác... 19

1.3.3. Ứng dụng trong khái quát hóa bản đồ ... 19

CHƢƠNG II ... 21

PHƢƠNG PHÁP ĐƠN GIẢN HÓA ĐƢỜNG CONG VÀ ĐA GIÁC ... 21

2.1. Các phƣơng pháp đơn giản hóa đƣờng cong. ... 21

2.1.1. Phƣơng pháp điểm độc lập. ... 22

2.1.2. Phƣơng pháp xử lý vùng. ... 24

2.1.3. Phƣơng pháp xử lý vùng mở rộng không ràng buộc ... 25

2.1.3.1. Thuật toán Reumann – Witkam ... 25

2.1.3.2. Thuật toán Band width ... 27

2.1.3.3. Thuật toán hình tam giác. ... 28 (adsbygoogle = window.adsbygoogle || []).push({});

2.1.4. Phƣơng pháp xử lý vùng mở rộng ràng buộc. ... 30

2.1.5. Phƣơng pháp toàn cầu ... 32

2.2. Phân tích lỗi và cải tiến thuật toán. ... 35

2.2.1. Tổng hợp lỗi vị trí ... 36

2.2.2. Biện pháp vùng khác biệt. ... 37

2.2.3 Xác định giá trị ngƣỡng và xử lý các tập dữ liệu ngẫu nhiên. ... 39

2.2.4. Phƣơng pháp đánh giá. ... 40

2.2.5. Cải tiến thuật toán ... 41

CHƢƠNG III ... 44

CHƢƠNG TRÌNH THỬ NGHIỆM ... 44

3.1. Giới thiệu bài toán ... 44

3.2 Thuật toán và cài đặt. ... 44

3.2.1 Thuật toán Douglas – Peucker. ... 45

3.2.2 Thuật toán Bandwith. ... 48

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

61

3.3 Chƣơng trình thử nghiệm. ... 52

KẾT LUẬN ... 55

PHỤ LỤC CỦA CHƢƠNG TRÌNH ... 56

TÀI LIỆU THAM KHẢO ... 58

Một phần của tài liệu Phương pháp đơn giản hóa đường cong và đa giác (Trang 52 - 61)