Code thuật toán tô màu dựa theo dòng quét

9 Một vùng tô bao gồm đường biên và vùng bên trong. Đường biên là một đường khép kín, ví dụ như đa giác.

9 Tô màu là thao tác tìm các điểm sáng “nằm bên trong” một vùng tô.

9 Tô dựa theo dòng quét [scan line] là tô màu theo dòng điểm sáng trên màn hình.

Cách thực hiện:

Thuật toán tô màu dựa theo đường biên: [2]

Đường biên trong thuật toán này được mô tả bằng một giá trị duy nhất là màu của tất cả các điểm thuộc về đường biên.

Bắt đầu từ điểm nằm bên trong vùng tô, ta sẽ kiểm tra các điểm lân cận của nó đã được tô màu hay có phải là điểm biên hay không, nếu không phải là

điểm đã tô và không phải là điểm biên, ta sẽ tô màu nó. Quá trình này được lặp đi lặp lại cho đến khi nào không còn tô được điểm nào nữa thì dừng. Bằng cách này, toàn bộ các điểm thuộc vùng tô được kiểm tra và sẽ được tô hết.

Hình 2-10: quá trình thực hiện của thuật toán tô màu dựa theo đường biên

Tuy nhiên, do thuật toán này khi cài đặt có tính đệ quy, thường dẫn đến tràn bộ nhớ đối với vùng tô khá lớn. Cho nên, để cải tiến, ta sẽ tiến hành loang dần và lần lượt tô từng đoạn giao theo dòng quét ngang thay vì tô theo các điểm lân cận [chẳng hạn 4 điểm lân cận]. Đó chính là thuật toán tô màu dựa theo dòng quét cải tiến được trình bày ngay sau đây.

Thuật toán tô màu theo dòng quét cải tiến:

9 Giới thiệu ý tưởng:

Lưu lại thông tin của điểm bắt đầu mỗi đoạn giao nhau của dòng quét ngang thay vì phải lưu hết tất cả các điểm lân cận chưa được tô xung quanh điểm hiện hành. Việc tô màu được thực hiện loang theo các dòng quét từ điểm bắt đầu hướng lên biên trên, sau khi tô xong, lại theo hướng xuống biên dưới. Ứng với mỗi dòng quét ngang, ta sẽ loang và tìm pixel trái nhất để lưu lại.

9 Chi tiết thuật toán:

B1: ta tìm điểm bên trái nhất trong vùng cần tô của dòng kề trên và dòng kề dưới điểm đang xét tính từ vị trí của điểm đang xét [miễn các dòng kề trên và dòng kề dưới này vẫn nằm trong vùng cần tô]. Các điểm trái nhất đó, ta đưa vào một danh sách chờ theo thứ tự định sẵn [chẳng hạn điểm nằm trên trước rồi điểm nằm dưới sau] miễn các điểm đó không trùng với các điểm đã có trong danh sách chờ.

B2: Ta lại tiếp tục xét cho điểm kề bên phải của điểm đang xét. Nếu đã đến đường biên thì nhảy sang B3, còn ko thì quay lại B1.

B3: Ta lấy phần tử được đưa vào sau cùng của danh sách chờ rồi lại quay trở về B1 làm tương tự như trên. Nếu danh sách chờ hết phần tử thì đã tô xong vùng cần tô, thuật toán kết thúc.

9 Ví dụ minh hoạ:

Trong hình 2.10 sau, đoạn giao đầu tiên chứa điểm bắt đầu [tô màu trắng] sẽ được tô trước]. Sau đó các vị trí 1, 2 ứng với các đoạn giao của các dòng quét kế tiếp sẽ được lưu lại.

Hình 2-11

Bước tiếp theo [hình 2.11], điểm ứng với vị trí 2 sẽ được lấy ra và tiến hành tô màu bằng cách loang từ điểm này ra theo chiều ngang, sau đó pixel ứng vị trí 3 của dòng quét kế tiếp sẽ được lưu lại.

Hình 2-12

Sau khi dòng quét ứng với điểm 3 đã được xử lý tương tự như trên xong, stack lưu các vị trí của các điểm “hạt giống” cho các dòng quét kế tiếp như trong hình 2.12.

Hình 2-13

Hình 2.13 minh hoạ khi thuật toán đã tô được toàn bộ một phần vùng phía trên bên phải của vùng tô. Khi pixel ứng với vị trí 5 được xử lý xong, ta có phần còn lại phía trên bên trái sẽ được tô. Sau đó pixel ứng với vị trí 4 sẽ được xử lý, các dòng quét phía dưới sẽ được tô tiếp theo.

Hình 2-14

Ý nghĩa:

Thuật toán tô màu dựa theo dòng quét cải tiến được dùng để tô màu 4 góc của ảnh bài thi khi mới vừa được đưa vào chấm. Vì ảnh của bài thi ban đầu có phần rìa xung quanh mày đen, mà nếu cứ để như vậy rồi nhận dạng các ký hiệu định sẵn ở bốn góc sẽ dẫn đến nhận dạng sai vị trí các ký hiệu đó.

Mục tiêu: Mô tả kết quả điều trị trượt đốt sống thắt lưng bằng phẫu thuật ít xâm lấn giải ép, ghép xương liên thân đốt qua lỗ liên hợp. Đối tượng và phương pháp: Nghiên cứu mô tả chùm ca bệnh 51 trường hợp bệnh nhân trượt đốt sống thắt lưng đơn tầng được phẫu thuật ít xâm lấn giải ép, ghép xương liên thân đốt qua lỗ liên hợp tại khoa Phẫu thuật cột sống, Bệnh viện Hữu nghị Việt Đức từ 01/2019 - 12/2020. Kết quả: 51 bệnh nhân [11 nam, 40 nữ], tuổi trung bình là 47,9 ± 12,9 [từ 15 đến 72] đã được phẫu thuật ít xâm lấn giải ép, ghép xương liên thân đốt qua lỗ liên hợp. Kết quả xa sau mổ được đánh giá theo tiêu chuẩn MacNab tại thời điểm 12 tháng sau mổ 44/51 bệnh nhân khám lại [86,3%]: rất tốt: 28 [63,6%], tốt: 14 [31,8%], khá: 2 [4,6%], xấu: 0 [0,0%]. Đánh giá cải thiện triệu chứng lâm sàng sau mổ tại thời điểm khám lại cuối cùng: điểm đau lưng VAS [Visual Analogue Scale] trước mổ 6,22 ± 1,06, sau mổ 12 tháng 1,89 ± 1,50, điểm đau chân VAS trước mổ 5,90 ± 1,40, sau mổ 12 tháng 1,25 ± ...

Chương 2: Thuật toán tô màu

... tô 7 Thuật toán tô màu dựa theo đường biên Boundary-fill 8 Minh hoạ thuật toán tô màu dựa theo đường biên Boundary-fill • Phải đảm bảo đường biên là khép kín và màu cần tô khác màu biên • Thuật ... giá trị màu của các điểm trên biên. • Phương pháp tô màu tổng quát: 1. Khởi tạo một điểm nằm trong vùng tô 2. Kiểm tra các điểm lân cận Nếu không phải điểm đã tô hoặc điểm biên thì tô màu cho ... 2 Các hệ màu 3 4 5 Các thuật toán tô màu • Bằng các điểm và đoạn thẳng, chúng ta có thể dễ dàng biểu diễn các đối tượng với các đường biên khép kín bao quanh. • Đối tượng đặc? • Tô màu: – Xác...

  • 36
  • 1,508
  • 15

Chương 2 Thuật toán tránh vật cản.docx

... optical flow. Có hai cách tính toán các optical flow :  Thuật toán Dense Optical Flow [ Optical Flow đặc] : tính toán các vector này cho mọi điểm trong ảnh Thuật toán Sparse Optical Flow [ Optical ... tính toán cụ thể được chia thành hai phần : chọn phần tử bằng thuật toán Shi-Tomasi và theo dõi các phần tử đó bằng thuật toán Pyramid Lucas-Kanade.Việc tránh chướng ngại vật dựa trên kỹ thuật ... là hướng trái và hướng phải].3. THUẬT TOÁN DẪN HƯỚNG THÍCH NGHI [ ADAPTIVE NAVIGATION ]Thuật toán này được trình bày trong tài liệu tham khảo [2]. Đây là một kĩ thuật dẫn hướng cục bộ với vị trí...

  • 18
  • 2,919
  • 24

Các thuật toán tô mầu

... phức tạp khi ta cần tô theo một mẫu tô nàó chứ không phải tô thuần một màu. • Có hai cách tiếp cận chính : tô màu theo dòng quétvà tô màu dựa theo đường biên.♦ Phương pháp tô màu dựa theo dòng ... EF, G*F vì không còn cắt dòng quét].• Thuật toán dừng tại đây.ĐỒ HỌA MÁY TÍNHDương Anh Đức, Lê Đình Duy Các thuật toán tô màu 9/16Lưu đồ thuật toán tô màu theo dòng quétBeginTạo danh sách tất ... Đức, Lê Đình Duy Các thuật toán tô màu 14/16• Có hai quan điểm về cách tô này, đó là dùng 4 điểmlân cận [hình a] hay 8 điểm lân cận [hình b].• Cài đặt minh họa thuật toán tô màu theo đường biênvoid...

  • 16
  • 2,581
  • 4

Thuật toán tô mầu đồ thị

... Ư'ng dụng thuật toán tô màu đồ thịLê Thanh Hà[Tiếp theo số trước ]Thuật toán xếp các nhóm thivào các phòng thi [Thuật toán 2]:Sắp xếp các nhóm thi tăng dầntheo ... trên}end;end;Ouput;end;Lập lịch thi theo hai thuậttoán trênHai thuật toán trên đã được xâydựng xong. Thuật toán thứ nhất dùng để phân chia các nhóm thành những tập hợpđộc lập với nhau. Thuật toán thứ hai sẽ xếp các ... bậc lớn nhất. Sử dụng thuật toán 1 để tạotập I mới có từ đồ thị G. Đặt G = G, Quay lại bước 3. Thuật toán trên là tổng hợp củahai thuật toán đã trình bày trước. Cài đặt thuật toán này không quá...

  • 4
  • 4,526
  • 88

Thuật toán tô màu Scanline - Đồ họa Pascal

... bài toán tô màu đa giác bằng thuật toán Scanline Trong đồ họa máy tính có khá nhiều thuật toàn tô màu [Scanline, tô loang...] cho 1 vùng kín [đặc] như các đa giác, các đường tròn... Xong mỗi thuật ... đường tròn... Xong mỗi thuật toán lại tỏ ra có những ưu việt và hạn chế riêng đối với từng bài toán cụ thể. Với thuật toán tô màu theo dòng quét [Scanline], khi tô màu cho một vùng kín đôi khi ... viết này nhằm xác định các trường hợp đặc biệt của bài toán tô màu đa giác cũng như cách xử lý chúng để cho kết quả tô chính xác bằng thuật toán Scanline. I.Ý tưởng. -Duyệt qua tất cả các đỉnh...

  • 11
  • 2,851
  • 19

CÁC THUẬT TOÁN TÔ MÀU

... Chương 2: Các thuật toán tô màu 2.3.3. Phương pháp tô màu dựa theo đường biên Bài toán đặt ra : Cần tô màu một vùng nếu biết được màu của đường biên vùng tô và một điểm nằm bên trong vùng tô. ... Thuật toán này bắt đầu từ việc xác định một điểm có thuộc vùng cần tô hay không ? Nếu đúng là điểm thuộc vùng cần tô thì sẽ tô với màu muốn tô. Trang 33 Chương 2: Các thuật toán tô màu • Tô đường ... phải tô thuần một màu. Có 3 cách tiếp cận chính để tô màu. Đó là : tô màu theo từng điểm [có thể gọi là tô đơn giản], tô màu theo dòng quét và tô màu dựa theo đường biên. 2.3.1. Tô đơn giản Thuật...

  • 16
  • 1,566
  • 17

thuật toán tô màu đồ thị và ứng dụng xếp lịch thi

... gọi là cạnh [cung]. Tô màu đồ thị là phép gán màu cho mỗi đỉnh sao cho không có hai đỉnh kề nhau được gán cùng màu. Bài toán xếp lịch thi được mô hình hóa thành bài toán tô màu đồ thị như sau: ... i := 1;  Tô màu i cho đỉnh đầu tiên trong danh sách. Duyệt lần lượt các đỉnh tiếp theo và tô màu i cho đỉnh không kề đỉnh đã được tô màu i.  Nếu tất cả các đỉnh đã được tô màu thì kết ... 272 2. NỘI DUNG 2.1. Cơ sở lý thuyết 2.1.1. Thuật toán tô màu đồ thị Input: đồ thị G = [V, E]. Output: đồ thị G = [V, E] có các đỉnh đã được gán màu. Các bước:  Lập danh sách các đỉnh của...

  • 5
  • 5,282
  • 75

Tài liệu Kỹ thuật lập trình - Chương 2: Các yếu tố cơ bản của C và C++ docx

... nghĩakiểudữ liệumới2.5 Điềukhiểnchương trình: phân nhánh2.6 Điềukhiểnchương trình: vòng lặp2.7 Mộtsố lệnh ₫iềukhiểnchương trình khác30© 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++2.3.3 ... [C++] - -wchar_t [C++] 16 −32767 3276718© 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++Các phép toán cơ bảnPhép toán Ký hiệuKiểu nguyên Kiểusố thựcKiểu boolGán=XXX%, %=XxSố ... d*u;StateControllerstart[]stop[]LQGControllerstart[]stop[] Chương 2: Các yếutố cơ bảncủaC vàC++20© 2004, HOÀNG MINH SƠN Chương 2: Các yếutố cơ bảncủaC vàC++Nhìn nhận về chuyển ₫ổikiểulongdoubledoublefloatlongintshortcharbool21©...

Chủ Đề