![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Kỹ thuật đồ họa và xử lý ảnh: Bài 3 - Nguyễn Hoài Anh
Số trang: 24
Loại file: pdf
Dung lượng: 1.71 MB
Lượt xem: 34
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật đồ họa và xử lý ảnh: Bài 3 Thuật toán vẽ đường, cung cấp cho người học những kiến thức như: Thuật toán vẽ đường thẳng; thuật toán vẽ đường tròn; thuật toán vẽ Elip. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật đồ họa và xử lý ảnh: Bài 3 - Nguyễn Hoài Anh Giáo viên phụ trách môn học: Nguyễn Hoài Anh Khoa Công nghệ thông tin - HVKTQS Thuật toán vẽ đường thẳng Thuật toán vẽ đường tròn Thuật toán vẽ Elip Ý tưởng Giả sử tọa độ nguyên các điểm sau khi xấp xỉ đối tượng thực lần lượt là (xi,yi) với i=0,... vẽ các điểm này chúng ta sẽ được một đường xấp xỉ của đối tượng cần vẽ. Giả sử đã biết được (xi,yi) là tọa độ nguyên xác định ở bước thứ i, điểm nguyên tiếp theo (xi+1,yi+1) sẽ được xác định như thế nào? Ý tưởng Nhận xét ▪ Để đối tượng hiển thị trên lưới nguyên được liền nét, các điểm mà (xi+1,yi+1) có thể chọn chỉ là một trong tám điểm được đánh số từ 1 đến 8 ▪ Giải thích: điểm đen chính là (xi,yi). ▪ Nói cách khác : (xi+1,yi+1) = (xi+/-1,yi+/-1). Thuật toán Giả thiết 00) Với các đoạn thẳng dạng này, nếu (xi,yi) là điểm đã xác định được ở bước thứ i thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp 1 hoặc 2 Tại bước i+1 ta xác định được: xi+1 = xi+1 và yi+1 = yi hoặc yi+1. Vấn đề còn lại là cách chọn một trong hai điểm trên như thế nào để có thể tối ưu về mặt tốc độ. Thuật toán DDA (Digital Differential Analyzer) Việc quyết định chọn yi+1 là yi hay yi+1, dựa vào phương trình của đoạn thẳng y=mx+b Tính y rồi làm tròn số và gán giá trị đó cho yi+1. Như vậy yi+1 = Round(m xi+1 + b) = Round(m (xi+1)+b) Sơ đồ khối thuật toán DDA Cài đặt thuật toán DDA Procedure DDA ( x1, y1, x2, y2, color : integer ); Var dx, dy, step : integer; X_inc, y_inc , x, y : real ; Begin dx:=x2-x1; dy:=y2-y1; if abs(dx)>abs(dy) then steps:=abs(dx) else steps:=abs(dy); x_inc:=dx/steps; y_inc:=dy/steps; x:=x1; y:=y1; putpixel(round(x),round(y), color); for k:=1 to steps do begin x:=x+x_inc; y:=y+y_inc; putpi xel(round(x),round(y), color); end; end; Thuật toán Bresenham Đưa ra cách chọn yi+1 là yi hay yi+1 theo một hướng khác sao cho có thể tối ưu hóa về mặt tốc độ so với thuật toán DDA. Vấn đề mấu chốt ở đây là làm thế nào để hạn chế tối đa các phép toán trên số thực trong thuật toán. Sơ đồ khối thuật toán Bresenham Cài đặt thuật toán Bresenham Procedure Bres_Line (x1,y1,x2,y2: integer); Var dx, dy, x, y, P, const1, const2 : integer; Begin dx : = x2- x1; dy : = y2- y1; P : = 2*dy - dx; Const1 : = 2*dy ; const2: = 2*(dy - dx) ; x:= x1; y:=y1; Putpixel ( x, y, Color); while (x < x -2 ) do begin x : = x +1 ; if (P < 0) then P : = P + const1 else begin y : = y+1 ; P : = P + const2 end ; putpixel (x, y, color) ; end ; End ; Trong hệ tọa độ Decac. Phương trình đường tròn có dạng: Với tâm O(0,0): x2 + y2 = R2. Với tâm C(xc,yc): (x-xc)2 + (y-yc)2 = R2 Trong hệ tọa độ cực Do tính đối xứng của đường tròn C nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phân giác thì ta vẽ được cả đường tròn. Ý tưởng Cài đặt thuật toán vẽ đường tròn Procedure Circle (xc, yc, R : integer) ; Var x, y : integer ; Procedure DOIXUNG; Begin putpixel (xc + x , yc +y, color) ; putpixel (xc - x , yc + y, color) ; putpixel (xc + x , yc - y, color) ; putpixel (xc - x , yc- y, color) ; putpixel (xc + y , yc + x, color) ; putpixel (xc - y , yc + x, color) ; putpixel (xc + y , yc - x, color) ; putpixel (xc - y , yc - x, color) ; End ; Begin For x : = 0 to round(R*Sqrt(2)/2) do Begin y : = round(Sqrt(R*R - x*x)) ; DOIXUNG; End ; End ; Thuật toán MidPoint (xét điểm giữa) Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi+1 bằng cách so sánh điểm thực Q(xi+1,y) với điểm MidPoint là trung điểm của S và P theo nguyên tắc: ▪ Nếu điểm Q nằm dưới điểm MidPoint, ta chọn S. ▪ Ngược lại nếu điểm Q nằm trên điểm MidPoint ta chọn P. Thuật toán MidPoint (xét điểm giữa) Sơ đồ khối thuật toán ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật đồ họa và xử lý ảnh: Bài 3 - Nguyễn Hoài Anh Giáo viên phụ trách môn học: Nguyễn Hoài Anh Khoa Công nghệ thông tin - HVKTQS Thuật toán vẽ đường thẳng Thuật toán vẽ đường tròn Thuật toán vẽ Elip Ý tưởng Giả sử tọa độ nguyên các điểm sau khi xấp xỉ đối tượng thực lần lượt là (xi,yi) với i=0,... vẽ các điểm này chúng ta sẽ được một đường xấp xỉ của đối tượng cần vẽ. Giả sử đã biết được (xi,yi) là tọa độ nguyên xác định ở bước thứ i, điểm nguyên tiếp theo (xi+1,yi+1) sẽ được xác định như thế nào? Ý tưởng Nhận xét ▪ Để đối tượng hiển thị trên lưới nguyên được liền nét, các điểm mà (xi+1,yi+1) có thể chọn chỉ là một trong tám điểm được đánh số từ 1 đến 8 ▪ Giải thích: điểm đen chính là (xi,yi). ▪ Nói cách khác : (xi+1,yi+1) = (xi+/-1,yi+/-1). Thuật toán Giả thiết 00) Với các đoạn thẳng dạng này, nếu (xi,yi) là điểm đã xác định được ở bước thứ i thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp 1 hoặc 2 Tại bước i+1 ta xác định được: xi+1 = xi+1 và yi+1 = yi hoặc yi+1. Vấn đề còn lại là cách chọn một trong hai điểm trên như thế nào để có thể tối ưu về mặt tốc độ. Thuật toán DDA (Digital Differential Analyzer) Việc quyết định chọn yi+1 là yi hay yi+1, dựa vào phương trình của đoạn thẳng y=mx+b Tính y rồi làm tròn số và gán giá trị đó cho yi+1. Như vậy yi+1 = Round(m xi+1 + b) = Round(m (xi+1)+b) Sơ đồ khối thuật toán DDA Cài đặt thuật toán DDA Procedure DDA ( x1, y1, x2, y2, color : integer ); Var dx, dy, step : integer; X_inc, y_inc , x, y : real ; Begin dx:=x2-x1; dy:=y2-y1; if abs(dx)>abs(dy) then steps:=abs(dx) else steps:=abs(dy); x_inc:=dx/steps; y_inc:=dy/steps; x:=x1; y:=y1; putpixel(round(x),round(y), color); for k:=1 to steps do begin x:=x+x_inc; y:=y+y_inc; putpi xel(round(x),round(y), color); end; end; Thuật toán Bresenham Đưa ra cách chọn yi+1 là yi hay yi+1 theo một hướng khác sao cho có thể tối ưu hóa về mặt tốc độ so với thuật toán DDA. Vấn đề mấu chốt ở đây là làm thế nào để hạn chế tối đa các phép toán trên số thực trong thuật toán. Sơ đồ khối thuật toán Bresenham Cài đặt thuật toán Bresenham Procedure Bres_Line (x1,y1,x2,y2: integer); Var dx, dy, x, y, P, const1, const2 : integer; Begin dx : = x2- x1; dy : = y2- y1; P : = 2*dy - dx; Const1 : = 2*dy ; const2: = 2*(dy - dx) ; x:= x1; y:=y1; Putpixel ( x, y, Color); while (x < x -2 ) do begin x : = x +1 ; if (P < 0) then P : = P + const1 else begin y : = y+1 ; P : = P + const2 end ; putpixel (x, y, color) ; end ; End ; Trong hệ tọa độ Decac. Phương trình đường tròn có dạng: Với tâm O(0,0): x2 + y2 = R2. Với tâm C(xc,yc): (x-xc)2 + (y-yc)2 = R2 Trong hệ tọa độ cực Do tính đối xứng của đường tròn C nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng qua 2 trục tọa độ và 2 đường phân giác thì ta vẽ được cả đường tròn. Ý tưởng Cài đặt thuật toán vẽ đường tròn Procedure Circle (xc, yc, R : integer) ; Var x, y : integer ; Procedure DOIXUNG; Begin putpixel (xc + x , yc +y, color) ; putpixel (xc - x , yc + y, color) ; putpixel (xc + x , yc - y, color) ; putpixel (xc - x , yc- y, color) ; putpixel (xc + y , yc + x, color) ; putpixel (xc - y , yc + x, color) ; putpixel (xc + y , yc - x, color) ; putpixel (xc - y , yc - x, color) ; End ; Begin For x : = 0 to round(R*Sqrt(2)/2) do Begin y : = round(Sqrt(R*R - x*x)) ; DOIXUNG; End ; End ; Thuật toán MidPoint (xét điểm giữa) Thuật toán MidPoint đưa ra cách chọn yi+1 là yi hay yi+1 bằng cách so sánh điểm thực Q(xi+1,y) với điểm MidPoint là trung điểm của S và P theo nguyên tắc: ▪ Nếu điểm Q nằm dưới điểm MidPoint, ta chọn S. ▪ Ngược lại nếu điểm Q nằm trên điểm MidPoint ta chọn P. Thuật toán MidPoint (xét điểm giữa) Sơ đồ khối thuật toán ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật đồ họa và xử lý ảnh Kỹ thuật đồ họa Xử lý ảnh Thuật toán vẽ đường Thuật toán vẽ Elip Thuật toán vẽ đường trònTài liệu liên quan:
-
Phương pháp truyền dữ liệu giữa hai điện thoại thông minh qua môi trường ánh sáng nhìn thấy
6 trang 339 0 0 -
Giáo trình Autocad - Nghề: Quản trị mạng máy tính - Trình độ: Cao đẳng nghề (Phần 2)
52 trang 222 0 0 -
Đồ án: Kỹ thuật xử lý ảnh sử dụng biến đổi Wavelet
41 trang 220 0 0 -
Xây dựng công cụ nhận dạng khuôn mặt theo thời gian thực hiện trên nền hệ điều hành mã nguồn mỡ
7 trang 214 0 0 -
Đồ án tốt nghiệp: Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm
123 trang 205 0 0 -
Đề cương chi tiết môn học Kỹ thuật đồ họa và xử lý ảnh
5 trang 180 1 0 -
Luận văn tốt nghiệp: Tìm hiểu về SIMULINK trong MATLAB
50 trang 157 0 0 -
Đồ án tốt nghiệp: Ứng dụng camera 3D trong việc phân loại sản phẩm theo hình dạng và kích thước
83 trang 116 0 0 -
578 trang 105 0 0
-
Phương pháp Xử lý ảnh bằng kỹ thuật số: Phần 1
92 trang 102 0 0