TÓM TẮT Từ lâu phần mềm chỉnh sửa ảnh đã không còn lạ gì với Sinh Viên và GiảngViên khoa Công nghệ thông tin trong các trường Đại học trong và ngoài nước.Trong phần mềm này bao gồm các k
Trang 2KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 4Đầu tiên em xin gửi lời cảm ơn sâu sắc nhất tới TS Trần Nguyễn Minh
Thư Cô đã tận tình chỉ bảo, giúp đỡ em thực hiện niên luận này
Em xin cảm ơn các thầy cô Trường Đại học Cần Thơ – Khoa Công nghệ thôngtin và truyền thông đã giảng dạy và truyền kiến thức cho em
Em xin chân thành cảm ơn Ban giám hiệu trường Đại học Cần Thơ Khoa côngnghệ thông tin và truyền thông đã tạo mọi điều kiện giúp đỡ em hoàn thành nhiệm
Em xin chân thành cảm ơn!
Cần Thơ, ngày 8 tháng 12 năm2017
Người viết
Khâu Quang Hiệp
Trang 5
MỤC LỤC
PHẦN GIỚI THIỆU 4
1 Đặt vấn đề 4
2 Lịch sử giải quyết vấn đề 5
3 Mục tiêu đề tài 6
4 Đối tượng và phạm vi nghiên cứu 7
5 Phương pháp nghiên cứu 7
6 Kết quả đạt được 7
7 Bố cục niên luận 7
PHẦN NỘI DUNG 8
CHƯƠNG 1 8
MÔ TẢ BÀI TOÁN 8
1 Mô tả chi tiết bài toán 8
2 Vấn đề và giải pháp liên quan đến bài toán 8
2.1 Tạo hiệu ứng làm mờ ảnh 8
2.2 Tạo hiệu ứng ảnh chấm tròn 9
2.3 Tạo hiệu ứng ảnh trắng đen 9
2.4 Tạo hứng ứng tăng độ sáng tối và độ tương phản của ảnh 10
2.5 Tạo hiệu ứng gương 11
2.6 Tạo hiệu ứng biến dạng lõm ảnh 11
2.7 Tạo ảnh hiệu ứng biến dạng ảnh sóng nước 12
3 Mô tả giải pháp cho bài toán 12
3.1 Hiệu ứng làm mờ ảnh: 12
3.2 Hiệu ứng chấm tròn: 13
3.3 Hiệu ứng ảnh trắng đen: 13
3.4 Hiệu ứng ảnh độ sáng và tương phản: 13
Trang 61.2 Thiết kế phần mềm 17
2 Thiết kế và cài đặt giải thuật 17
2.1 Lớp imagewidget 17
2.1.1 Thiết kế lớp 17
2.1.2 Cài đặt giải thuật sử dụng 17
2.2 Lớp mainwindow 20
2.2.1 Thiết kế lớp 20
2.2.2 Cài đặt giải thuật: 20
2.2.3 Cài đặt chức năng sử dụng: 20
3 Giao diện hệ thống 21
PHẦN KẾT LUẬN 22
1 Kết quả đạt được 22
2 Hạn chế 22
3 Hướng phát triển 22
TÀI LIỆU THAM KHẢO 23
Trang 7TÓM TẮT
Từ lâu phần mềm chỉnh sửa ảnh đã không còn lạ gì với Sinh Viên và GiảngViên khoa Công nghệ thông tin trong các trường Đại học trong và ngoài nước.Trong phần mềm này bao gồm các kiến thức căn bản về xử lý ảnh, các thuật toán
xử lý các điểm ảnh… Nhằm tạo ra các chức năng hiệu ứng đẹp, biến dạng và nângcao chất lượng cho ảnh như các phần mềm VSCOcam, 360camera, analog film
Trong phạm vi đề tài tập trung nghiên cứu các biến đổi, hiệu ứng của ảnh vàcác thuật toán xử lý về vị trí điểm ảnh Hoàn thành được một số hiệu ứng và biếndạng ảnh như: Hiệu ứng gương, lõm ảnh, chấm tròn, và ảnh sóng nước
Sử dụng công cụ cài đặt Qt Creator để phát triển đề tài trên nền tảng hệ điềuhành Window
Trang 8
Ảnh minh họa ứng dụng chỉnh sửa ảnh
Trang 92 Lịch sử giải quyết vấn đề
Đã có những phần mềm chỉnh sửa ảnh dễ sử dụng có sẵn như: VSCOcam,360camera, analog film, Mextures…
VSCOcam là một ứng dụng ấn tượng mang xu hướng trộn nhiều màu sắc cho
ảnh và được phát triển bởi Visual Supply Company Tiện dụng, sở hữu nhiều ứngdụng chỉnh màu đã tạo nên vẽ đẹp của bức ảnh và thích hợp với những bức ảnh cổđiển
Ảnh ứng dụng của VSCOcam+ Nhược điểm: giao diện người dùng hơi lạ và khó hiểu khi dùng lần đầu + Ưu điểm: Hiển thị nhiều tùy chỉnh cho một bức ảnh
Trang 10Mextures là công cụ hữu hiệu giúp bạn tinh chỉnh ảnh độc đáo và sáng tạo
được phát triển bởi Merek Davis COM, nó mang đến hiệu ứng lọc màu sắc có thểlàm ảnh của bạn đẹp hơn, sáng hơn
Ảnh ứng dụng của Mextures+ Ưu điểm: Làm kết hợp nhiều hiệu ứng với nhau, giao diện dễ sử dụng + Nhược điểm: Chưa có các tùy chỉnh cơ bản như độ sáng và độ tương phản,
Trang 114 Đối tượng và phạm vi nghiên cứu
Các thuật toán biến đổi ảnh, chỉnh sửa ảnh
Ngôn ngữ lập trình C++ với các thư viện trên nền Qt Creator
5 Phương pháp nghiên cứu
Phân tích, tham khảo các tài liệu liên quan đến xử lý ảnh, thư viện Qt Từ đó
áp dụng vào chương trình
6 Kết quả đạt được
Xây dựng được công cụ cho phép người dùng chọn 1 bức ảnh bất kỳ và lưulại ảnh vừa thay đổi hiệu ứng/biến dạng
Xây dựng được chức năng làm mờ ảnh
Xây dựng được chức năng tạo ảnh chấm tròn cho ảnh
Xây dựng được chức năng tạo ảnh trắng đen cho ảnh
Xây dựng được chức năng tăng độ sáng tối và tương phản cho ảnh
Xây dưng được chức năng tạo hiệu ứng gương cho ảnh
Xây dưng được chức năng tạo hiệu ứng ảnh lõm cho ảnh
Xây dưng được chức năng tạo hiệu ứng sóng nước cho ảnh
7 Bố cục niên luận
Phần giới thiệu
Giới thiệu tổng quát về đề tài.
Phần nội dung
Chương 1 : Mô tả bài
Chương 2 : Thiết kế và cài đặt.
Phần kết luận
Trình bày kết quả đạt được và hướng phát triển hệ thống
Trang 12PHẦN NỘI DUNG
CHƯƠNG 1
MÔ TẢ BÀI TOÁN
1 Mô tả chi tiết bài toán
Phần mềm sẽ có các hiệu ứng như hiệu ứng mờ ảnh, ảnh chấm tròn, ảnh trắngđen, thay đổi độ sáng và tương phản, ảnh gương, lõm, và để làm được điều đóthì chủ yếu chúng ta sẽ đọc và xử lý từng điểm ảnh
2 Vấn đề và giải pháp liên quan đến bài toán
Trang 132.2 Tạo hiệu ứng ảnh chấm tròn
Tạo hiệu ứng với các khung chấm tròn xen kẽ nhau Ta kết hợp khung ảnhvới ảnh gốc để tạo nên hiệu ứng
Hình 2.2 Ảnh minh họa hiệu ứng chấm tròn
2.3 Tạo hiệu ứng ảnh trắng đen
Làm bức ảnh trong giống thời kỳ chưa có thiết bị hiện đại, ta chuyển về ảnhtrắng đen Ảnh trắng đen không bị lỗi thời theo thời gian Ảnh trắng đen tạo
ra một bức tranh cùng một tông màu, giúp bạn tập trung vào kết cấu, bố cục
và hình dáng của chủ thể
Trang 142.4 Tạo hứng ứng tăng độ sáng tối và độ tương phản của ảnh
2.4.1 Tăng độ sáng tối
Để tăng độ sáng tối chỉ cần xác định điểm ảnh, cộng thêm tham số để hiệuchỉnh độ sáng tối tùy ý
Hình 2.4.1 Ảnh minh họa độ sáng tối
2.4.2 Tăng giảm độ tương phản
Để tăng giảm độ tương phản cần xác định điểm ảnh, nhận thêm tham số giátrị để hiệu chỉnh tăng giảm tùy ý
Hình 2.4.2 Ảnh minh họa độ tương phản
Trang 152.5 Tạo hiệu ứng gương.
Những bức ảnh với hiệu ứng gương làm rất nhiều người cảm thấy thích thú,việc mô tả khá đơn giản Ta lấy một phần ảnh trái và lặp lại phần ảnh phải
để tạo hiệu ứng gương
Hình 2.5 Ảnh minh họa độ hiệu ứng Gương
2.6 Tạo hiệu ứng biến dạng lõm ảnh
Tạo cảm giác bớt méo ảnh Thay đổi các vị trí điểm ảnh theo một công thức
để tạo ảnh lõm vào tâm ảnh
Trang 162.7 Tạo ảnh hiệu ứng biến dạng ảnh sóng nước
Tạo các gợn sóng lên trên bức ảnh làm bức ảnh phong cảnh đẹp hơn với cáchiệu ứng gợn sóng bóp méo đi bức ảnh
Hình 2.7 Ảnh minh họa hiệu ứng sóng nước
3 Mô tả giải pháp cho bài toán
Hình 3.1 Ảnh mô phỏng hiệu ứng làm mờ
Trang 173.2 Hiệu ứng chấm tròn:
Để làm được hiệu ứng chuyển ảnh này kết hợp với mặt nạ gồm các hìnhtròn :
+ Ta load ảnh gốc vào
+ Ta lấy màu trung bình của các Pixel lân cận cho toàn ảnh
+ Tạo ảnh mặt nạ hình tròn trắng (255) và background đen (0)
+ Cuối cùng ta chỉ cần lấy các điểm màu của ảnh vào các tọa độ củaảnh mặt nạ Như vậy sau các bước ta đã có thể làm được ảnh có hứngứng chấm bi trên ảnh
Hình 3.2 Ảnh mô phỏng hiệu ứng chấm bi
Trang 183.5 Hiệu ứng gương:
- Để tạo được ảnh Gương ta cần thực hiện các bước:
+ Đọc điểm ảnh từ 0 đến ½ chiều rộng của ảnh
+ Đọc ngược lại điểm ảnh từ ½ đến 0
+ Hiển thị điểm ảnh của hai lần đọc lên khung ảnh đầu vào
Hình 3.5 Ảnh mô phỏng độ hiệu ứng Gương
3.6 Biến dạng lõm ảnh:
- Lấy tọa độ tâm ảnh làm góc tọa độ
- Dùng Atan2 tại các vị trí xét đế lấy gốc tọa độ.
- Tính bán kính từ tâm bức ảnh,tính bán kính mới dựa trên số liệu bán kính
cũ
- Có được hai tọa độ x,y khi chuyển đổi bên trên ta tiếp tục xét điều kiện.
- Vị trí điểm ảnh được di chuyển theo công thức trên nên ảnh kết quả sẽ có
một số điểm ảnh bị mất (giá trị điểm ảnh bằng 0 hoặc 255)
- Chỉ việc lọc các điểm ảnh nhiễu bằng điểm màu xung quanh nó.
Trang 19Hình 3.6 Ảnh mô phỏng ảnh sau khi dùng hiệu ứng cầu lõm.
Trang 20CHƯƠNG 2 THIẾT KẾ VÀ CÀI ĐẶT
1 Thiết kế tổng quan hệ thống
1.1 Thiết kế tổng quan
- Giao diện: Nơi để giao diện cho người dùng, tiếp nhận và xuất kết quả ảnh của
phần mềm Xử lý các yêu cầu từ người dùng, kiểm tra dữ liệu nhập và gửi yềucầu xử lý
- Xử lý: Phần chính của phần mềm, có nhiệm vụ xử lý yều cầu người dùng hay
dữ liệu trước khi hiển thị lên màn hình
- Ảnh đầu vào: Đọc ảnh đầu vào của người dùng để nạp vào phần mềm và
chuyển sang xử lý và cho ra ảnh kết quả
- Ảnh kết quả: Ảnh sau khi xử lý và hiển thị trên giao diện
GIAO DIỆN XỬ LÝ ẢNH KẾT QUẢ GIAO DIỆN
ẢNH ĐẦU VÀO
Trang 21Đây là lớp chứa các hàm biến đổi hình ảnh.
Trong lớp imagewidget có các thành phần dữ liệu sau:
- QImage: lớp đọc và xử lý dữ liệu hình ảnh.
- QColor: mô tả màu theo các giá trị RGB, HSV hoặc CMYK.
- QRgb: mô tả không gian màu.
2.1.2 Cài đặt giải thuật sử dụng
- Chứa các phương thức hỗ trợ cho việc xử lý ảnh bao gồm:
+ getImg() : lấy ảnh
Trang 22Ta cộng thêm một số có định cho màu RGB của ảnh.
+ Chinhdotuongphan(): chỉnh độ tương phản
Lấy màu Hsv của ảnhv_out = v * c (c: độ sáng)Ảnh kết quả
+ Moanh(): Làm mờ ảnh Xét các các điểm ảnh lân cận, sau đó tổng các
điểm lại là chia cho tổng điểm đã xét
+ Anhchamtron(): tạo mặt nạ có các chấm bi:
- Lấy tọa độ pixel tại những điểm có màu 255 và thay đổi điểm màutại vi trí đó với ảnh gốc
+ Hinhtrontrang(): làm các chấm tròn trở thành màu trắng.
- Tính toán tọa độ hình tròn sau đó xét điểm màu tại đó thành 0
- Ta xác định tâm và bán kính sau đó xét các vị trí xung quanh tâm vàtạo màu trắng quanh đó
- Xác định độ rộng của hình tròn bằng cách tính sau:
leftRecX=Max(0,x-radius);
rightRecX=Min(width() -1,x+radius);
bottomRecY=Max(0,y- radius);
topRecY=Min(height()-1,y+radius);
Trang 23- Đọc điểm ảnh từ 0-> ½ chiều rộng của ảnh sau đó và đọc người lại
từ ½ -> 0 của điểm ảnh
+ Guongdoc():Tương tự chỉ khác đọc ½ ảnh theo chiều cao.
+ Caulom(): Hàm tạo hiệu ứng biến dạng ảnh lõm
Lấy giá trị khung ảnhTruex = x – midxTruey = y – midy (truex và truey là ½ width và height của ảnh)Xét từng điểm trong ảnh for x = 0 -> wighth, y = 0 -> height.Tính các giá trị sau để có được vị trí điểm ảnh hướng về tâmTheta = arctan2(truex, truey) (xét vị trí lấy gốc tọa độ)Radius = sqrt((truex*truex)+(truey*truey))
Newradius = radius*radius/(Max(midx,midy) Newx = midx + (newradius * sin(theta))Newy = midy + (newradius * cos(theta))Lấy tọa độ của newx, newy cho ảnh kết quả
+ Nước(): Hàm tạo hiệu ứng biến dạng ảnh sóng nước
Xét từng điểm trong ảnh for x = 0 -> wighth, y = 0 -> height.Tính vị trí của các điểm ảnh theo công thức
x0 = wave * sin(2*pi* (y/128)) y0 = wave * cos(2*pi* (x/128)) Newx = x + x0
Newy = y + y0Tính được x0,y0 và cộng với tọa độ đang xét của ảnh sẽ đượcmột gốc hơi lệch, khi kết hợp với nhiều tọa độ điểm ảnh khác ta
Trang 242.2 Lớp mainwindow
2.2.1 Thiết kế lớp
Các thành phần sử dụng trong mainwindow:
- QMdiArea: thiết lập cửa sổ để hiển thị ảnh
- QString: lưu trữ chuỗi tiêu đề của ảnh
- QWidget: giao diện
- QMdiSubWindow: thiết lập cửa sổ và thanh tiêu đề
- QMessageBox: hiển thị của sổ tin nhắn
- QInputDialog: hiển thị cửa sổ và nhập giá trị trên đó
+ Có các chức năng mở ảnh (open), lưu ảnh (save) và thoát (exit)
+ Các hàm điều khiển khi nhấn vào button của chương trình
Giao diện chụp ảnh sẽ có 3 button(nút) để hỗ trợ quá trình sử dụng là:
- Button Load: tại ảnh từ máy lên (QFileDialog::getOpenFileName)
- Button Save: lưu ảnh (QFileDialog::getSaveFileName)
- Button Quit: thoát khỏi chương trình (QApplication::exit())
Trang 253 Giao diện hệ thống
Hình 3.1.Giao diện sử dụng.
Trang 26- Xây dựng được các chức năng cơ bản: Tải ảnh, lưu ảnh sau khi chỉnh sửa.
- Cài đặt được phần mềm “Tạo hiệu ứng và biến dạng ảnh”
2 Hạn chế
- Chưa tùy chỉnh được độ biến dạng của ảnh tùy theo người dùng
- Chưa ứng dụng được trên các nền tảng hệ điều hành khác
- Thuật toán cần tham khảo trên Internet và các tài liệu, chưa suy nghĩ ra đượcmột thuật toán riêng cho bản thân
- Chưa có sự đột phá nổi bật trong phần mềm
- Chỉ sử dụng được offline
3 Hướng phát triển
- Kết hợp nhiều thủ thuật và thuật toán cho một chức năng trong phần mềm
- Xây dựng giao diện sinh động
- Xây dựng các thuật toán tối ưu hóa cho phần mềm
- Đưa phần mềm lên Internet để mọi người có thể tham khảo về ứng dụng của mình và góp ý kiến để ứng dụng được tốt hơn
- Xây dựng thêm nhiều chức năng cho ảnh như biến dạng khung mặt, trộn ảnh
- Có thể sử dụng phần mềm online
Trang 27TÀI LIỆU THAM KHẢO