xulyanh tp b1

24
THỰC HÀNH XỬ LÝ ẢNH 1. Buổi 1 Giúp hiểu được các định nghĩa liên quan đến ảnh, các kỹ thuật xử lý ảnh thông qua công cụ xử lý ảnh Photoshop Làm quen với QT Creator 2. Buổi 2 Sử dụng QT Creator để thực hiện phép xử lý ảnh cơ bản 3. Buổi 3 Xử lý lân cận 4. Buổi 4 Các kỹ thuật phát hiện và xử lý đường biên 5. Buổi 5 Lập trình 1 ứng dụng xử lý ảnh đơn giản 6. Buổi 6 Thi thực hành

Upload: nhoc-buong-binh

Post on 02-Jan-2016

385 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Xulyanh TP B1

 THỰC HÀNH XỬ LÝ ẢNH

1. Buổi  1● Giúp hiểu được các định nghĩa liên quan đến ảnh, các kỹ thuật xử lý ảnh thông qua công cụ xử                                       

lý ảnh Photoshop● Làm quen với QT Creator

2. Buổi  2● Sử dụng QT Creator để thực hiện phép xử lý ảnh cơ bản

3. Buổi  3● Xử lý lân cận

4. Buổi  4● Các kỹ thuật phát hiện và xử lý đường biên

5. Buổi  5● Lập trình 1 ứng dụng xử lý ảnh đơn giản

6. Buổi  6● Thi thực hành

Page 2: Xulyanh TP B1

BUỔI 1

I. Mục đíchII. Photoshop

1. Hệ màu của ảnh2. Các định nghĩa liên quan đến ảnh

a. Độ phân giải hiển thị (độ phân giải điểm ảnh­resolution)b. Độ phân giải màu – độ sâu màuc. Tổ chức đồ (histogram)

3. Các kỹ thuật xử lý ảnha. Xử lý ảnh dựa trên “tổ chức đồ” của ảnhb. Chuyển ảnh mức xám về ảnh nhị phân (phân ngưỡng) : thresholdingc. Một số toán tử logic trên ảnhd. Một số bộ lọc trong photoshopi. Tăng độ rõ nét của ảnh – Sharpenii. Làm mờ ảnh – bluriii. Bộ lọc Medianiv. Bộ lọc thượng thông (high­pass)v. Tìm đường biên

III. QT Creator1. Download và cài đặt2. Sử dụng Qt Creator

a. Tạo dự án mới (create Project)b. Tổ chức của dự ánc. Thiết kế giao diện và xử lý sự kiện

I. Mục đích● Giúp hiểu được các định nghĩa liên quan đến ảnh, các kỹ thuật xử lý ảnh thông qua công cụ xử                                       

lý ảnh Photoshop● Làm quen với QT Creator

II. Photoshop

1. Hệ màu của ảnh:

Các thành phần màu của 1 ảnh được hiển thị tại menu “Channels” (Window ­>                           Channels)Cách chọn và thay đổi hệ màu của một ảnh: “Image” ­> “Mode” ­> hệ màu

Page 3: Xulyanh TP B1

Ví dụ 1: ảnh được tổng hợp đầy đủ 3 màu RGB

Ví dụ 2: ảnh được tổng hợp từ 2 màu xanh lá và xanh dương

Các bạn tiếp tục thực hành thay đổi các hệ màu khác như ảnh mức xám, ảnh màu                                 được tổng hợp theo mô hình CMYK

2. Các định nghĩa liên quan đến ảnh

a. Độ phân giải hiển thị (độ phân giải điểm ảnh­resolution)

 Độ phân giải điểm ảnh chính là số lượng điểm ảnh có thể hiển thị trên mỗi chiềuð  Xem sự thay đổi chất lượng ảnh khi thay đổi

∙         số pixels hiển thị trên 1 inch (độ phân giải điểm ảnh)∙ số pixels hiển thị trên chiều dài, chiều rộng ảnh (độ phân giải không                           

gian)

Page 4: Xulyanh TP B1

b.      Độ phân giải màu – độ sâu màu

Độ phân giải màu là số màu phân biệt có thể hiển thị được ó Ảnh có độ sâu màu lớn                                       hơn có khả năng hiển thị nhiều màu sắc hơn, hoặc hiển thị màu sắc “mịn” hơn.

c.       Tổ chức đồ (histogram)

Biểu diễn sự phân bố mức xám/màu của ảnh (đếm số điểm ảnh trên mỗi mức xám),                               được sử dụng để tìm ra đặc trưng của ảnhMenu Window ­> histogram

Độ sáng tối, độ tương phản của ảnh  (Brightness,constract) Để thay đổi độ sáng tối của ảnh: Image ­> Adjustments ­> Brightness/Contrast

Page 5: Xulyanh TP B1

Khi thay đổi độ sáng tối, tương phản của ảnh thì tổ chức đồ của ảnh cũng sẽ thay đổi                                     theo.

3. Các kỹ thuật xử lý ảnh

a. Xử lý ảnh dựa trên “tổ chức đồ” của ảnh

Tổ chức đồ: áp dụng làm thay đổi độ sáng tối (trượt tổ chức đồ), độ tương phản của                                   ảnh (căng tổ chức đồ, biến đổi tuyến tính, cân bằng tổ chức đồ)∙ Để thay đổi độ sáng tối của ảnh thì chúng ta sẽ sử dụng kỹ thuật “trượt tổ chức                                     

đồ”o   Trượt về bên phải để tăng độ sáng của ảnho   Trượt về bên trái để tăng độ tối của ảnh

Page 6: Xulyanh TP B1

∙        Để thay đổi độ tương phản của ảnh thì ta sử dụng kỹ thuậto   “căng tổ chức đồ”

§  Thu hẹp chân tổ chức đồ ­> giảm độ tương phản ảnh§  Mở rộng chân tổ chức đồ ­> tăng độ tương phản

o “biến đổi tuyến tính”: kết hợp giữa trượt và căng tổ chức đồ để có được                               tổ chức đồ tối ưu => trượt về trái (mức xám min =0), căng tổ chức đồ: max                                 mức xám = 255

o “cân bằng tổ chức đồ”: điều chỉnh sự phân bố mức độ mức xám của ảnh                               sao cho tổ chức đồ của ảnh ít lồi lõm

b. Chuyển ảnh mức xám về ảnh nhị phân (phân ngưỡng) : thresholding

Chuyển ảnh bất kỳ về ảnh nhị phân:Image ­> Adjustments ­> ThresholdThay đổi giá trị của ngưỡng để có những ảnh trắng đen khác nhau

c. Một số toán tử logic trên ảnh:

Cộng 2 ảnh: kết hợp 2 layer lại với nhau

Page 7: Xulyanh TP B1

d. Một số bộ lọc trong photoshop

Bộ lọc trong photoshop giúp xử lý các ảnh không hoàn hảo, hoặc thêm các hiệu ứng lên ảnh

                                            i.            Tăng độ rõ nét của ảnh – SharpenLàm rõ nét của ảnh hoặc 1 phần của ảnh bằng cách tăng độ tương phản của các pixel                                   liền kề(a) Filter ­> Sharpen ­> Sharpen: làm rõ bằng cách tăng độ tương phản giữa                           

các pixel trong vùng chọn hay trong ảnh.Tuy nhiên ảnh có thể xuất hiện các                           hạt vào các vùng đồng nhất

(b) Filter ­> Sharpen ­> Sharpen Edges: tập trung vào các mép của ảnh. Thêm                           độ rõ nét mà không làm cho ảnh có hạt hoặc cát

(c)  Filter ­> Sharpen ­> Sharpen More(d) Filter ­> Sharpen ­> Unsharp Mask: xử dụng kỹ thuật trong phòng tối: 2                           

ảnh ghép đôi lại với nhau – vùng sáng và vùng tối loại trừ lẫn nhau.

                                          ii.            Làm mờ ảnh – blur(a) Filter ­> Blur ­> Average : bộ lọc trung bình (thay thế các giá trị 1 điểm ảnh                                   

bằng giá trị trung bình của các điểm ảnh lân cận) cho phép làm trơn ảnh,                             giảm nhiễu, giảm các chi tiết không quan trọng và làm nhòe đường biên

(b)  Filter ­> Blur ­> Blur : làm mờ toàn bộ ảnh

Page 8: Xulyanh TP B1

(c) Filter ­> Blur ­> Blur More: làm mờ toàn bộ ảnh với với cường độ mờ cao                                 hơn

(d) Filter ­> Blur ­> Gaussian Blur: sử dụng bộ lọc Gaussian làm mờ ảnh và cho                               phép điệu chỉnh độ mờ của ảnh.

(e) Filter ­> Blur ­> Motion Blur: mô phỏng độ mờ xuất hiện trong các đối                             tượng chuyển động.

(f) Filter –> Blur ­> Radial Blur: tạo kiểu mờ như khi chụp một lớp bánh xe                               hơi đang quay

(g) Filter –> Blur ­> Smart Blur: cho phép áp dụng độ mờ vào các mép và                               những chi tiết khác của ảnh

                                        iii.            Bộ lọc MedianBộ lọc Median (thay thế giá trị 1 điểm ảnh bằng giá trị trung vị của các điểm ảnh                                   lân cận) cho phép khử nhiễu dạng muối tiêu tốt hơn so với bộ lọc trung bình và                                 bộ lọc Gauss(a)  Filter ­> Noise ­> Add Noise : tạo hiệu ứng hạt cho ảnh

Page 9: Xulyanh TP B1

(b) Filter –> Noise ­> Median : khử nhiễu (làm giảm hạt trong ảnh) – ngược lại                               với hiệu ứng “Add noise”

(c) Filter –> Noise ­> Despeckle: bộ lọc làm cho các chấm bụi trong ảnh ít chú ý                                 hơn bằng cách giảm độ tương phản của toàn bộ ảnh (trừ các mép)

(d) Filter –> Noise ­> Dust& Scratches: bộ lọc tập trung hiệu ứng làm mờ trên                             các vùng của ảnh vốn chưa các vệt trầy xướt.

                                         iv.            Bộ lọc thượng thông (high­pass)(a) Filter –> Other ­> High Pass: bộ lọc thượng thông giữ lại những thành phần                             

tần số cao, làm nổi rõ chi tiết và đường biên ­> được áp dụng để tìm đường                                 biên ảnh.High pass là bộ lọc trái ngược với bộ lọc Gaussian Blur

Page 10: Xulyanh TP B1

                                           v.            Tìm đường biênFilter –>Stylize ­> Find Edges

 

III.            QT Creator

1.      Download và cài đặt

Qt là ứng dụng cross­platform và là framework giao diện người dùng (UI) cho các nhà phát triển sử                                   dụng ngôn ngữ C++ hoặc QML (ngôn ngữ kiểu CSS & JavaScript). Thế mạnh của Qt là đồ họa và xử                                       lý ảnh. OpenGL cũng được tích hợp vào trong Qt tạo nên một thư viện hoàn hảo về đồ họa máy tính. Đi                                           kèm với Qt là Qt Creator, một môi trường phát triển tích hợp hỗ trợ cho phát triển các ứng dụng Qt. Qt                                           

Page 11: Xulyanh TP B1

được sử dụng trong các phần mềm KDE trên các hệ thống GNU/Linux. Plasma Workspaces

   là một ví dụDownload Qt từ trang http://qt­project.org/downloads. Phiên bản hiện tại của Qt là Qt 5.0. Trên                           Windows, nên sử dụng bản Qt 5.0.1 for Windows 32­bit (MinGW 4.7, 823 MB). Bản cài đặt này bao                                   gồm thư viện Qt và môi trường phát triển tích hợp (IDE) Qt Creator.

2. Sử dụng Qt Creator

Giao diện chính của Qt Creator như hình bên dưới.

a.      Tạo dự án mới (create Project)

Click nút Create Project…

Page 12: Xulyanh TP B1

Chọn mẫu (template): Qt C++ Project, Qt Gui Application, kế đến click Choose…

 

Page 13: Xulyanh TP B1

Nhập tên dự án (Name) và thư mục chứa dự án (Create in), sau đó click Next.

Chọn kiểu giao diện. Qt Creator cung cấp 3 kiểu ứng dụng giao diện đồ họa chính thừa kế từ các lớpcơ sở sau:

∙         QMainWindow: Kiểu giao diện này thường được sử dụng, giao diện gồm có Menu, Thanh công cụ(Toolbar), Cửa số trung tâm (Center Widget) và Thanh trạng thái (StatusBar)

∙         QDialog: Giao diện ứng dụng kiểu hộp hội thoại.∙         QWidget: (Dành cho người dùng chuyên nghiệp), người dùng có thể tùy biến giao diện theo ý thích,

nhưng phải lập trình khá nhiều.

Nhập tên lớp cửa số chính (Class name): mặc định Qt Creator đặt tên lớp chính là MainWindow nếulớp cơ sở là QMainWindow.

Page 14: Xulyanh TP B1

Click Next, chọn bộ quản lý phiên bản (version control). Có thể bỏ qua bước này.

Click Finish để hoàn tất việc tạo dự án. Sau đó cấu hình dự án (Project setup).

Page 15: Xulyanh TP B1

Click Finish là hoàn tất.

Page 16: Xulyanh TP B1

Kết quả thực thi dự án: Ta được ứng dụng gồm khung Window, Thanh công cụ, cửa sổ trung tâm vàthanh trạng thái.

b. Tổ chức của dự án

Đóng giao diện, click icon Edit bên trái để xem tổ chức dự án.

Page 17: Xulyanh TP B1

Dự án gồm các file sau:∙         HelloWorld.pro: file chính của dự án∙         mainwindow.ui: định nghĩa giao diện giao diện đồ họa (theo cấu trúc XML)∙         mainwindow.h: định nghĩa lớp MainWindow∙         main.cpp: chứa hàm main()∙         mainwindow.cpp: cài đặt các hàm có trong lớp MainWindow

File HelloWorld.pro

 

Page 18: Xulyanh TP B1

File mainwindow.ui

Khi biên dịch Qt sẽ sinh ra lớp Ui::MainWindow được dùng trong lớp MainWindow.

File mainwindow.h

File mainwindow.cpp

Page 19: Xulyanh TP B1

File main.cpp

c. Thiết kế giao diện và xử lý sự kiện

Trong phần này ta sẽ thiết kế một giao diện gồm một nút nhấn (PushButton) có nhãn: “Click me!”, có                                     tên (name): btnClick, khi click chuột vào sẽ hiện hộp thông báo “Hello world!”Thiết kế giao diện: mở file mainwindow.ui ở chế độ Design, thêm một nút nhấn vào khung cửa sổ                                   

Page 20: Xulyanh TP B1

trung tâm. Kéo nút nhấn (Push Button) thả (drag and drop) vào trong cửa sổ trung tâm.

Click phải trên nút nhấn, chọn Change text… để thay đổi nhãn của nút nhấn.

Page 21: Xulyanh TP B1

Đổi nhãn thành Click me!

Xử lý sự kiện: Qt cung cấp cơ chế lập trình hướng sự kiện thông qua: SIGNAL và SLOT.∙ SIGNAL: Sự kiện. Sự kiện có thể là sự kiện của hệ thống như click chuột, di chuyển chuột, bấm                                       

phím, … Sự kiện cũng có thể do người lập trình tự định nghĩa và kích hoạt trong chương trình.∙ SLOT: Hàm xử lý sự kiện. Về bản chất SLOT cũng là một phương thức (method). Để khai báo một                                       

phương thức là một slot ta thêm phát biểu public slots: hoặc private slots: trước phương thức tương                                 ứng.SIGNAL và SLOT được gắn kết với nhau qua hàm connect.

Để gắn kết sự kiện do một thành phần có trong giao diện phát ra, click phải trên thành phần đó, chọn                                         Go to slot…, trong ví dụ này là click phải trên nút nhấn, chọn Go to slot…

Page 22: Xulyanh TP B1

Chọn tín hiệu/sự kiện clicked(). Sự kiện này xảy ra người dùng click chuột lên nút nhấn hoặc nhấn                                   ENTER khi nút nhấn đang được kích hoạt.

Xem lại file mainwindow.h ta sẽ thấy Qt đã tự động thêm vào một slot tên on_pushButton_clicked().                               Việc kết nối SIGNAL clicked() và SLOT on_pushButton_clicked() được thực hiện tự động khi ta gọi                             hàm ui­>setupUi(this).

Page 23: Xulyanh TP B1

Giờ ta quay lại file mainwindow.cpp để định nghĩa code xử lý cho SLOT on_pushButton_clicked().

Kết quả như hình bên dưới.

Page 24: Xulyanh TP B1