Tuy nhiên, những chiếc camera mặc định của điện thoại thường chỉ cho ranhững hình ảnh thô và không làm hài lòng người sử dụng, đôi khi họ muốn biếnnhững bức ảnh kém nổi bật sau khi chụp
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀIXÂY DỰNG ỨNG DỤNG HIỆU CHỈNH HÌNH
ẢNH TRÊN ĐIỆN THOẠI DI ĐỘNG
Sinh viên thực hiện : NGUYỄN QUANG HUY
Lớp : 18IT5
Giảng viên hướng dẫn : ThS LÊ VIẾT TRƯƠNG
Đà Nẵng, tháng 5 năm 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀIXÂY DỰNG ỨNG DỤNG HIỆU CHỈNH HÌNH ẢNH TRÊN ĐIỆN THOẠI DI ĐỘNG
Trang 3NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
…
Đà Nẵng, ngày 30 tháng 05 năm 2021
Giảng viên hướng dẫn
Trang 4LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến thầy Lê Viết Trương đã tận tình chỉ bảo
và giúp đỡ để em có thể hoàn thành đồ án môn học này Trong suốt quá thời gianhọc và làm đồ án môn học, thầy đã dành rất nhiều thời gian quý báu để tận tình chỉbảo, hướng dẫn, định hướng cho em thực hiện đồ án
Ngoài ra em xin gửi lời cảm ơn đến các thầy cô giáo của Trường Đại học Côngnghệ thông tin và Truyền thông Việt- Hàn đã giảng dạy để em có được kiến thức để
có thể hoàn thành được đồ án này
Quá trình thực hiện và kết quả đồ án không tránh khỏi những thiếu sót, hạn chếnên em mong sẽ nhận được sự chỉ dẫn và đóng góp ý kiến của các thầy cô
Em xin chân thành cảm ơn !
Trang 5MỤC LỤC
NHẬN XÉT 1
LỜI CẢM ƠN 2
MỤC LỤC 3 MỞ ĐẦU 4 1 Giới thiệu 4
2 Bố cục 5
Chương 1 GIỚI THIỆU TỔNG QUAN 6
1 Tổng quan về chỉnh sửa ảnh 6
2 Các tính năng của trình chỉnh sửa ảnh 6
3 Các công cụ 8
3.1 Thư viện OpenCV 9
Chương 2 CƠ SỞ LÝ THUYẾT 10
1 Một chút căn bản về ảnh kỹ thuật số (digital image) 10
2 Xử lý ảnh 11
2.1 Chuyển ảnh màu sang grayscale 11
2.2 Thay đổi độ tương phản (contrast) 11
2.3 Thay đổi độ sáng (brightness) 12
Chương 3 DEMO ỨNG DỤNG 15
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18
1.Kết Luận 18
2.Hướng phát triển 18
DANH MỤC TÀI LIỆU THAM KHẢO 19
Trang 6MỞ ĐẦU
1 Giới thiệu
Ngày nay, điện thoại di động đã dần trở nên phổ biến trên thế giới và là mộtphần không thể thiếu trong đời sống cảu mỗi người, với sự kế thừa những ưuviệt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiêntiến nhất hiện nay
Cùng với sự phát triển không ngừng của công nghệ thông tin, các siêuphẩm điện thoại thông minh ra đời, các thiết bị di động như điện thoại, máy tínhbảng, máy nghe nhạc, selfie ngày càng phát triển mạnh mẽ, tạo nên cuộc cạnhtranh giữa các hãng phát triển di động Ngày càng nhiều sản phẩm di động thôngminh ra đời được nâng cấp và cải thiện rất lớn về hiệu suất cũng như cấu hìnhcao đáp ứng nhu cầu của người sử dụng Bên cạnh những chức năng quan trọngcủa một chiếc smartphone, một chức năng cũng không thể thiếu đó là chiếccamera chụp ảnh, để lưu trữ lại những kỷ niệm đẹp, những khoảnh khắc ýnghĩa Những chiếc smartphone ngày càng được cải thiện cả về tính năng lẫnchất lượng phần cứng, camera trên điện thoại cũng ngày một hoàn thiện hơn, ápdụng những công nghệ xử lý ảnh tiên tiến để cho ra những bức ảnh đẹp và trânthực nhất, đáp ứng nhu cầu chụp ảnh, selfie với chất
lượng hình ảnh cao
Tuy nhiên, những chiếc camera mặc định của điện thoại thường chỉ cho ranhững hình ảnh thô và không làm hài lòng người sử dụng, đôi khi họ muốn biếnnhững bức ảnh kém nổi bật sau khi chụp trở nên lung linh và sắc nét hơn, vớinhững hiệu ứng biến đổi màu sắc, hiệu ứng khung ảnh, làm cho bức ảnh trở nênkhác biệt Và họ cần một ứng dụng khác biệt có thể thay thế ứng dụng mặc định
mà hệ điều hành cung cấp có thể tùy chỉnh bức ảnh sau khi chụp theo sở thíchcủa mỗi người
Bởi vậy trước nhu cầu và lợi thế đó, em quyết định nghiên cứu và xâydựng ứng dụng: “Xây dựng ứng dụng hiệu chỉnh hình ảnh trên điện thoại di
Trang 7động” Ứng dụng có thể cho phép mọi người chỉnh sửa các hiệu ứng, biển đổităng sáng tối cho bức ảnh, có thể tạo style Bên cạnh đó sau khi xử lý ảnh xong,người dùng có thể chia sẻ lên mạng xã hội, tạo wallpaper cho điện thoại củamình Vì nhiều lý do cho nên ứng dụng của em hiện chỉ chạy được trên hệ điềuhành Android.
2 Bố cục
Nội dung báo cáo gồm các phần chính sau đây:
Chương 1: Giới thiệu tổng quan Chương 2: Cơ sở lý thuyết Chương 3: Demo ứng dụng
Trong quá trình xây dựng đề tài không thể tránh được những thiếu sót, emmong được những ý kiến đóng góp, phê bình của các thầy, cô để bài của emđược hoàn thiện hơn Sự phê bình, góp ý của quý thầy cô sẽ là nhưng bài họckinh nhiệm quý báu cho công việc thực tế của em sau này
Em xin trân thành cảm ơn!
Trang 8Chương 1 GIỚI THIỆU TỔNG QUAN
1 Tổng quan về chỉnh sửa ảnh
Hình ảnh Raster được lưu trữ trong máy tính dưới dạng lưới các phần tửhình ảnh hoặc pixel Các pixel này chứa thông tin về màu sắc và độ sáng củahình ảnh Người chỉnh sửa hình ảnh có thể thay đổi các pixel để nâng cao hìnhảnh theo nhiều cách Các pixel có thể được thay đổi thành một nhóm hoặc riêng
lẻ bằng các thuật toán phức tạp trong trình chỉnh sửa hình ảnh Bài viết này chủyếu đề cập đến các trình chỉnh sửa đồ họa bitmap , thường được sử dụng để thayđổi ảnh và các đồ họa raster khác Tuy nhiên, phần mềm đồ họa vector , chẳnghạn như Adobe Illustrator , CorelDRAW , Xara Designer Pro hoặc Inkscape,được sử dụng để tạo và sửa đổi hình ảnh vectơ, được lưu trữ dưới dạng mô tảđường thẳng , đường cong Bézier và văn bản thay vì pixel Nó là dễ dàng hơn đểrasterize một hình ảnh vector hơn để vectorize một hình ảnh raster; làm thế nào
để vectơ hóa một hình ảnh raster là trọng tâm của nhiều nghiên cứu trong lĩnhvực thị giác máy tính Hình ảnh vectơ có thể được sửa đổi dễ dàng hơn vì chúngchứa mô tả về các hình dạng để dễ dàng sắp xếp lại Chúng cũng có thể mởrộng, có thể phân loại ở bất kỳ độ phân giải nào
2 Các tính năng của trình chỉnh sửa ảnh
2.1 Lớp: Một tính năng khác phổ biến đối với nhiều ứng dụng đồ họa
là các Lớp , tương tự như các tấm axetat trong suốt (mỗi lớp chứa các phần tửriêng biệt tạo nên một bức tranh kết hợp), được xếp chồng lên nhau, mỗi lớp cókhả năng được định vị, thay đổi và pha trộn riêng lẻ với các lớp bên dưới, màkhông ảnh hưởng đến bất kỳ phần tử nào trên các lớp khác Đây là quy trình làmviệc cơ bản đã trở thành tiêu chuẩn cho phần lớn các chương trình trên thịtrường hiện nay, và mang lại sự linh hoạt tối đa cho người dùng trong khi vẫnduy trì các nguyên tắc chỉnh sửa không phá hủy và dễ sử dụng
Trang 92.2 Thay đổi kích thước hình ảnh: Trình chỉnh sửa hình ảnh có thể
thay đổi kích thước hình ảnh trong một quá trình thường được gọi là chia tỷ lệhình ảnh , làm cho chúng lớn hơn hoặc nhỏ hơn Cao độ phân giải hình ảnhcamera có thể tạo ra hình ảnh lớn thường được giảm kích thước cho Internet sửdụng Các chương trình chỉnh sửa hình ảnh sử dụng một quy trình toán học đượcgọi là lấy mẫu lại để tính toán các giá trị pixel mới có khoảng cách lớn hơn hoặc
nhỏ hơn giá trị pixel ban đầu Hình ảnh để sử dụng Internet được giữ ở mức nhỏ,
chẳng hạn 640 x 480 pixel tương đương 0,3 megapixel
2.3 Cắt hình ảnh: Các trình chỉnh sửa kỹ thuật số được sử dụng để cắt
hình ảnh Cắt tạo ra một hình ảnh mới bằng cách chọn một phần hình chữ nhậtmong muốn từ hình ảnh đang được cắt Phần không mong muốn của hình ảnh bịloại bỏ Cắt ảnh không làm giảm độ phân giải của vùng được cắt Kết quả tốtnhất thu được khi hình ảnh gốc có độ phân giải cao Lý do chính cho việc cắtxén là để cải thiện bố cục hình ảnh trong hình ảnh mới
Trước Sau
2.4 Thay đổi độ tương phản và độ sáng: Các trình chỉnh sửa hình ảnh
có các quy định để thay đổi đồng thời độ tương phản của hình ảnh và làm sánghoặc tối hình ảnh Hình ảnh thiếu sáng thường có thể được cải thiện bằng cách
sử dụng tính năng này Những tiến bộ gần đây đã cho phép hiệu chỉnh độ phơisáng thông minh hơn, theo đó chỉ những điểm ảnh dưới ngưỡng độ sáng cụ thể
Trang 10mới được làm sáng, do đó làm sáng những vùng bóng thiếu sáng mà không ảnhhưởng đến phần còn lại của hình ảnh Sự chuyển đổi chính xác được áp dụngcho từng kênh màu có thể khác nhau giữa các trình biên tập GIMP áp dụngcông thức sau:
3.if ( độ sáng < 0,0 ) giá trị = giá trị * (1,0 + độ sáng );
4 giá trị khác = giá trị + (( 1 - giá trị ) * độ sáng ); giá trị = ( giá trị - 0,5 )
Dựa trên phần mềm IntelliJ IDEA của JetBrains, Android Studio đượcthiết kế đặc biệt để phát triển ứng dụng Android.[5] Nó hỗ trợ các hệ điều hànhWindows, Mac OS X và Linux,[6][7] và là IDE chính thức của Google để pháttriển ứng dụng Android gốc để thay thế cho Android Development Tools (ADT)dựa trên Eclipse
Trang 114 Thư viện OpenCV
OpenCV (Open Computer Vision library) do Intel phát triển, được giớithiệu năm 1999 và hoàn thiện thành phiên bản 1.0 năm 2006 Thư viện OpenCV– gồm khoảng 500 hàm – được viết bằng ngôn ngữ lập trình C và tương thíchvới các hệ điều hành Windows, Linux, Mac OS… đóng vai trò xác lập chuẩngiao tiếp, dữ liệu, thuật toán cho lính vực CV và tọa điều kiện cho mọi ngườitham gia nghiên cứu và phát triển ứng dụng
Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lí ảnh.Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất vàkhông ổn định Các bộ công cụ thương mại như Matlab, Simulink, v.v lại cógiá cao chỉ thích hợp cho các công ty phát triển các ứng dụng lớn Ngoài ra còn
có các giải phảp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và đượcthiết kế riêng cho tứng thiết bị, rất khó khan cho việc mở rộng ứng dụng
OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử líảnh số vì các ưu điểm sau:
- OpenCV là công cụ chuyên dụng: được Intel phát triển theo hướng tối
ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lí, thưviện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn OpenCV thíchhợp để phát triển nhanh ứng dụng
- OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí, việcđược xây dựng trên mã nguốn mở giúp OpenCV trở thành công cụ thích hợp chonghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình, thuậttoán
- OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đãthu hút được một lượng lớn người dung, trong đó có các công ty lớn nhưMicrosoft, IBM, Sony, Siemens, Google và các nhóm nghiên cứu ở Standford,MIT, CMU, Cambridge,… Nhiều forum hỗ trợ và cộng đồng người dung đãđược thành lập, tạo nên kênh thông tin rộng lớn, hữu ích cho việc tham khảo, tracứu
Trang 12Chương 2 CƠ SỞ LÝ THUYẾT
1 Một chút căn bản về ảnh kỹ thuật số (digital image)
Một hình ảnh (kỹ thuật số) được tạo thành bởi nhiều phần tử gọi là pixel(hay điểm ảnh) Thường thì một hình được biểu diễn bằng một mảng hai chiềugồm nhiều pixels Mỗi pixel (cụ thể là hình RGB) mang trong mình 3 thông sốmàu: Red, Green, Blue
Ngoài ra, đối với không gian RGBA thì nó có một kênh thứ 4 là Alpha,trong đó Alpha là một thông số chỉ độ trong suốt của pixel đó
Trang 13Như đã nói ở trên, một pixel mang 3 giá trị màu, vì trên thực tế mỗi pixelđược cấu thành bao gồm 3 sub-pixels Và pixel cũng không có kích thước vật lý
cụ thể, mà nó phụ thuộc vào pixel density Mỗi pixel chứa được 256 (0-255) giátrị, cho nên về mặt lý thuyết 3 sub-pixels hiện thị được 256^3 = 16777216 (~16triệu màu) Nhưng tất nhiên là mắt người chưa hẳn đã phân biệt được 16 triệumàu này
2 Xử lý ảnh.
3 Chuyển ảnh màu sang grayscale
Về cơ bản thì grayscale (hình trắng đen) là loại ảnh mà tất cả pixels chỉmang thông tin về độ sáng, hay nói cách khác chỉ thể hiện các sắc thái của màuxám (Luminance mode) Trong không gian màu RGB, thì màu xám là màu màcác sắc tố Red, Green, Blue có giá trị bằng nhau Ví dụ màu đỏ là rgb(255, 0, 0)thì nếu ta muốn chuyển nó sang xám thì lấy giá trị trung bình của 3 sub-pixels
và tạo thành 1 pixel mới rgb(85, 85, 85)
Trước Sau
4 Thay đổi độ tương phản (contrast)
Trang 142.from PIL import Image, ImageEnhance
3.# PIL accesses images in Cartesian co-ordinates, so it is
2.3 Thay đổi độ sáng (brightness)
Để thay đổi độ sáng của ảnh bằng Pillow cũng rất đơn giản, ta làm như sau:
Trang 15from PIL import Image, ImageEnhance
img = Image.open("rick-morty.png")
đó sao cho nó nằm trong khoảng 0-255 là được
from PIL import Image
def truncate(value):
Trang 16for j in range(img_new.size[1]):
Trang 17Chương 3 DEMO ỨNG DỤNG
Các hình ảnh của ứng dụng.
Hình 3.1 Điều chỉnh hiệu ứng Hình 3.2 Cắt hình ảnh
Trang 18Hình 3.3 Điều chỉnh độ tương phản Hình 3.4 ĐIều chỉnh độ sáng
Trang 19Hình 3.5 Xoay, lật hình
Trang 20KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1.Kết Luận
Bên trên là báo cáo về đề tài ứng dụng hiệu chỉnh hình ảnh Đề tài nàycần được phát triển hơn nữa trong tương lai vì đây có thể coi là một ứng dụngphổ biến trong người dùng Tuy nhiên ứng dụng còn rất nhiều thiếu sót:
- Điều chỉnh ánh sáng cũng như độ tương phản còn chưa được chính xác
- Một số hiệu ứng chỉ mang tính khách quan
2.Hướng phát triển
Một số chức năng có thể mở rộng cũng như thực hiện sau này:
- Chức năng xóa vật thể: Chức năng này cho phéo người dùng xóa đinhững vật thể không mong muốn ở trong tấm ảnh của mình
- Chức năng ghép hình ảnh: Chức năng cho phép lồng, ghép các tấmhình lại với nhau…
Trang 21DANH MỤC TÀI LIỆU THAM KHẢO
1 https://en.wikipedia.org
2 https://opencv.org
3 https://www.youtube.com