Tải bản đầy đủ (.pdf) (45 trang)

báo cáo bài tập lớn đề tài xây dựng phần mềm chỉnh sửa ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.77 MB, 45 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BÁO CÁO BÀI TẬP LỚN </b>

<b>ĐỀ TÀI: XÂY DỰNG PHẦN MỀM CHỈNH SỬA ẢNH </b>

<b>Giảng viên hướng dẫn: TS. Vũ Hữu Tiến </b>

<b>Môn học: Xử lý và truyền thơng đa phương tiện </b>

<b>Nhóm sinh viên: 02 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI CẢM ƠN </b>

Trong thời gian 3 tháng học tập tại trường, nhóm chúng em xin gửi lời cảm ơn sâu sắc đến thầy giáo Vũ Hữu Tiến đã quan tâm, giảng dạy và hướng dẫn tận tình, đầy tâm huyết trong suốt quá trình học tập môn Xử lý và truyền thông đa phương tiện. Nhờ sự hướng dẫn của thầy, chúng em đã tích lũy được nhiều kiến thức bổ ích và hồn thành bài tập lớn với đề tài "Xây dựng phần mềm chỉnh sửa ảnh cơ bản bằng Python".

Tuy nhiên, do kiến thức về lập trình cịn hạn chế, bài tập của chúng em không tránh khỏi những thiếu sót. Chúng em mong thầy xem xét và góp ý để bài báo cáo được hoàn thiện hơn.

Cuối cùng, nhóm chúng em xin kính chúc thầy sức khỏe dồi dào, hạnh phúc và thành công trong sự nghiệp trồng người. Chúc thầy luôn truyền lửa đam mê và tiếp tục dìu dắt nhiều thế hệ học trị đến bến bờ tri thức.

Chúng em xin trân trọng cảm ơn!

<b>Nhóm sinh viên thực hiện, </b>

[Nhóm 2]

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

1.2.4 Thư viện xử lí ảnh PIL ... 19

1.2.5 Visual Studio Code ... 20

1.3 Tổng quan chức năng ... 20

1.4 Kết luận chương 1 ... 21

<b>CHƯƠNG 2: MÔ TẢ VỀ SẢN PHẨM ... 22</b>

2.1 Xác định yêu cầu ... 22

2.2 Ý tưởng thiết kế giao diện ... 22

2.3 Thiết kế giao diện ... 22

2.3.1 Giao diện mở ảnh ... 22

2.3.2 Giao diện chính ... 23

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

3.3.1 Thông tin chung... 39

3.3.2 Khảo sát trải nghiệm người dùng đối với phần mềm ... 40

3.4 Kết luận chương 3 ... 43

<b>KẾT LUẬN ... 44</b>

A. Kết quả đạt được ... 44

B. Đánh giá hạn chế... 44

C. Định hướng phát triển trong tương lai ... 44

<b>DANH MỤC TÀI LIỆU THAM KHẢO ... 45</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Hình 1. 8: Ví dụ về một ma trận biểu diễn ảnh màu ... 14

Hình 1. 9: Ví dụ về ma trận sau khi tách thành 3 channel ... 14

Hình 1. 10: Cơng thức tích chập giữa hàm ảnh f(x,y) và bộ lọc k(x,y) ... 15

Hình 1. 11: Logo của Python ... 16

Hình 1. 12: Ví dụ về một đoạn code Python ... 16

Hình 1. 13: Ví dụ về một đoạn code C++ ... 17

Hình 1. 14: Logo của Tkinter ... 18

Hình 1. 15: Cú pháp Tkinter để tạo một giao diện ... 18

Hình 1. 16: Giao diện đơn giản được tạo bằng Tkinter ... 18

Hình 1. 17: Logo của Visual Studio Code ... 20

Hình 2. 1: Giao diện mở ảnh ... 22

Hình 2. 2: Giao diện chính ... 23

Hình 2. 3: Giao diện của Menu Position ... 23

Hình 2. 4: Giao diện của Menu Color ... 24

Hình 2. 5: Giao diện của Menu Effect... 24

Hình 2. 6: Giao diện của Menu Export ... 24

Hình 2. 7: Đoạn code thực hiện chức năng đọc ảnh ... 25

Hình 2. 8: Đoạn code thực hiện chức năng mở ảnh ... 25

Hình 2. 9: Đoạn code thực hiện chức năng hiển thị ảnh ... 26

Hình 2. 10: Đoạn code khai báo các tham số ... 27

Hình 2. 11: Ma trận biến đổi cho phép xoay ... 28

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Hình 2. 12: Đoạn code thực hiện chức năng xoay và thu phóng ảnh ... 28

Hình 2. 13: Đoạn code thực hiện chức năng lật ảnh ... 28

Hình 2. 14: Đoạn code thực hiện chức năng điều chỉnh độ sáng ... 29

Hình 2. 15: Đoạn code thực hiện chức năng điều chỉnh độ rực màu ... 29

Hình 2. 16: Đoạn code thực hiện chức năng chuyển thành ảnh đen trắng và đảo màu ... 30

Hình 2. 17: Đoạn code của chức năng làm mờ ảnh, điều chỉnh độ tương phản và độ sắc nét ... 30

Hình 2. 18: Ma trận sử dụng cho hiệu ứng Emboss trong PIL... 30

Hình 2. 19: Ma trận sử dụng cho hiệu ứng Find edges trong PIL ... 31

Hình 2. 20: Ma trận sử dụng cho hiệu ứng Edge enhance trong PIL ... 31

Hình 2. 21: Ma trận sử dụng cho hiệu ứng Contour trong PIL ... 31

Hình 3. 1: Mã QR truy cập đường link tải phần mềm ... 32

Hình 3. 7: Kết quả của ảnh sau khi xoay ... 34

Hình 3. 8: Kết quả của ảnh sau khi phóng to ... 34

Hình 3. 9: Kết quả của ảnh sau khi lật theo chiều X ... 35

Hình 3. 10: Kết quả của ảnh sau khi lật theo chiều Y ... 35

Hình 3. 11: Kết quả của ảnh sau khi tăng độ sáng ... 35

Hình 3. 12: Kết quả của ảnh sau khi tăng độ rực màu ... 36

Hình 3. 13: Kết quả của ảnh sau khi chuyển thành ảnh đen trắng ... 36

Hình 3. 14: Kết quả của ảnh sau khi đảo ngược màu ... 36

Hình 3. 15: Kết quả của ảnh sau khi làm mờ ảnh ... 37

Hình 3. 16: Kết quả của ảnh sau khi tăng độ tương phản ... 37

Hình 3. 17: Kết quả của ảnh sau khi tăng độ sắc nét ... 37

Hình 3. 18: Kết quả của ảnh sau khi sử dụng hiệu ứng Emboss ... 38

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Hình 3. 19: Kết quả của ảnh sau khi sử dụng hiệu ứng Find edges ... 38

Hình 3. 20: Kết quả của ảnh sau khi sử dụng hiệu ứng Contour ... 38

Hình 3. 21: Kết quả của ảnh sau khi sử dụng hiệu ứng Edge enhance ... 39

Hình 3. 22: Mã QR của đường link truy cập khảo sát ... 39

Hình 3. 23: Kết quả khảo sát về độ tuổi của người tham gia ... 39

Hình 3. 24: Kết quả khảo sát về giới tính của người tham gia ... 40

Hình 3. 25: Kết quả khảo sát về số thời gian người tham gia đã sử dụng phần mềm chỉnh sửa ảnh ... 40

Hình 3. 26: Kết quả khảo sát về mức độ hài lịng sau khi trải nghiệm phần mềm ... 41

Hình 3. 27: Kết quả khảo sát về mức độ hài lòng về mức độ sử dụng tài nguyên hệ thống của phần mềm ... 41

Hình 3. 28: Kết quả khảo sát về mức độ hài lòng về tốc độ xử lý của phần mềm ... 41

Hình 3. 29: Kết quả khảo sát về mức độ hài lòng về độ ổn định của phần mềm ... 42

Hình 3. 30: Kết quả khảo sát về mức độ hài lòng về giao diện của phần mềm . 42Hình 3. 31: Kết quả khảo sát về tính năng được sử dụng nhiều nhất ... 42

Hình 3. 32: Kết quả khảo sát về mức độ hài lịng về tính hữu dụng của phần mềm ... 43

Hình 3. 33: Kết quả khảo sát về tỉ lệ người dùng sẽ chia sẻ phần mềm cho mọi người xung quanh ... 43

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>MỞ ĐẦU </b>

<b>1. Đặt vấn đề </b>

Ngày nay, với sự phát triển bùng nổ công nghệ, các thiết bị camera kỹ thuật số và smartphone ngày càng phổ biến với khả năng chụp ảnh chất lượng cao. Cùng với đó, mạng xã hội và các nền tảng trực tuyến càng ngày càng phát triển. Từ đó, tạo điều kiện cho mọi người chia sẻ hình ảnh một cách dễ dàng.

Qua khảo sát và nghiên cứu thực tế, nhu cầu về việc chụp ảnh, ghi lại những khoảnh khắc, tạo ra những đoạn phim chất lượng, màu sắc đẹp, độ phân giải cao. Minh chứng rõ ràng nhất là Apple đã liên tục trau dồi, phát triển camera chụp ảnh để tạo ra những bức ảnh đẹp nhất, chân thực nhất. Bên cạnh một thiết bị chụp ảnh tốt, không thể thiếu những phần mềm chỉnh sửa ảnh chất lượng, nó là cách tay đắc lực cho các nhiếp ảnh gia hay kể cả những bạn trẻ thích chụp ảnh. Theo khảo sát, trung bình một chiếc điện thoại đều có ít nhất 1-2 app chỉnh sửa ảnh và con số này là 2-3 đối với các bạn nữ. Hiện nay, có rất nhiều phần mềm chỉnh sửa ảnh nổi tiếng mà chúng ta có thể bắt gặp những thương hiệu, logo qua những tấm ảnh được đăng tải trên mạng xã hội hằng ngày. Khi chúng ta nghĩ đến việc chỉnh sửa ảnh, có lẽ Adobe Photoshop sẽ xuất hiện đầu tiên trong đầu chúng ta. Đây là một phần mềm chỉnh sửa ảnh tối ưu, chuyên nghiệp và thông dụng nhất hiện nay. Tuy nhiên, đối với các người dùng phổ thơng thì Adobe Photoshop q phức tạp và địi hỏi kỹ năng cao. Ngồi ra, Adobe Photoshop là một phần mềm mất phí (với 29.99 USD mỗi tháng), khơng phù hợp với nhiều người.

Chính vì thế, chúng em đã thực hiện đề tài “Xây dựng phần mềm chỉnh sửa cơ bản với Python” nhằm giúp người dùng dễ dàng chỉnh sửa ảnh theo ý muốn, tiết kiệm thời gian và chi phí so với việc sử dụng các phần mềm chỉnh sửa ảnh thu phí.

<b>2. Mục tiêu chọn đề tài </b>

Đề tài “Phần mềm chỉnh sửa ảnh cơ bản với Python” được xây dựng với mục đích cung cấp cho người dùng một công cụ chỉnh sửa ảnh đơn giản, dễ sử dụng và miễn phí. Đối tượng hướng đến là người dùng phổ thông nên mục tiêu của đề tài là tạo ra phần mềm chỉnh sửa ảnh cơ bản bao gồm các chức năng như:

+ Cắt, xoay, chỉnh kích thước ảnh + Điều chỉnh độ sáng, độ tương phản + Thêm các hiệu ứng cho ảnh

Ngồi ra, đề tài cịn góp phần nâng cao một số kỹ thuật thao tác với ảnh, lập trình giao diện GUI (Graphic User Interface) bằng Tkinter bằng Python và giúp chúng em hiểu được một số thuật toán về xử lý ảnh.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>3. Bố cục đề tài </b>

Đề tài “ Xây dựng phần mềm chỉnh sửa ảnh cơ bản với Python” gồm 3 chương: Chương 1: Tổng quan đề tài

Chương 2: Mô tả về sản phẩm của đề tài

Chương 3: Cài đặt phần mềm, thử nghiệm và đánh giá

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI </b>

<b>1.1 Giới thiệu về Xử lý ảnh </b>

<i><b>1.1.1 Tổng quan về xử lý ảnh </b></i>

Xử lý ảnh là một lĩnh vực mang tính khoa học và cơng nghệ máy tính liên quan đến việc thao tác và phân tích hình ảnh kỹ thuật số. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chun dụng riêng cho nó. Xử lý ảnh đã được ứng dụng và phát triển trong rất nhiều lĩnh vực quan trọng như:

+ Trong lĩnh vực an ninh bảo mật: Nhận diện khuôn mặt người, nhận diện vân tay, mẫu mắt, hình ảnh người và các thiết bị khác.

+ Trong lĩnh vực quân sự: Xử lý và nhận diện các trang thiết bị quân sự, phục vụ trinh thám, giám sát các mục tiêu quan trọng.

+ Trong lĩnh vực giải trí: Phục vụ q trình làm phim và tạo ra các trị chơi điện tử, xử lý đồ họa.

+ Trong lĩnh vực y tế: Xử lý ảnh chụp X-quang, MRI, xử lý ảnh y sinh,… + Trong lĩnh vực AI: nhận dạng và xử lý ảnh của robot, giao tiếp giữa robot với con người, xử lý đồ họa.

<i><b>1.1.2 Các giai đoạn chính về xử lý ảnh </b></i>

Mơ hình tổng quát của một hệ thống xử lý ảnh như sau:

<i><small>Hình 1. 1: Mơ hình tổng qt của một hệ thống xử lý ảnh </small></i>

1.1.2.1 Thu nhận ảnh

Ảnh có thể thu nhận qua camera. Thơng thường ảnh thu nhận qua camera là tín hiệu tương tự, nhưng cũng có thể là tín hiệu số hố. Ảnh cũng có thể thu nhận từ vệ tinh qua bộ cảm ứng (sensor), hay ảnh, tranh được quét trên scanner.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i><small>Hình 1. 2: So sánh giữa ảnh thật và ảnh kỹ thuật số </small></i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

1.1.3.2 Độ phân giải của hình ảnh

Độ phân giải bức ảnh (Image Resolution) chỉ lượng thông tin được chứa đựng trong một tập tin ảnh hiển thị trên màn hình. Hay nói cách khác đó số pixel trong một hình ảnh số.

Đơn vị đo độ phân giải là pixel, megapixel:

Các thang giá trị mức xám thông thường là: 16, 32, 64, 128, 256. Mức 256 là mức phổ biến nhất.

1.1.3.4 Độ sâu màu của ảnh số

Độ sâu màu của ảnh số là đại lượng mô tả khả năng biểu diễn các màu sắc trong ảnh số khi thể hiện trên các thiết bị màn hình hoặc in ấn. Đó chính là thơng số thể hiện số lượng các bit được sử dụng để biểu thị màu sắc của mỗi pixel.

Từ đó ta phân hình ảnh thành 3 loại: + Ảnh nhị phân

+ Ảnh xám + Ảnh màu.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

1.1.3.7 Ảnh màu

Ảnh màu là ảnh thơng thường ta hay nhìn thấy nhất, ở đây ta sẽ xét ảnh theo mơ hình RGB: đỏ, xanh lục và xanh lam được tổ hợp với nhau theo nhiều phương thức khác nhau để tạo thành nhiều màu khác nhau. Mỗi pixel của ảnh màu có 3 giá trị xám tương ứng là giá trị của màu đỏ (R), giá trị của màu xanh lục (G) và giá trị của màu xanh lam (B), mỗi giá trị là số nguyên nằm trong đoạn [0,255]. Ta dùng 24 bit để biểu diễn một pixel.

<i><small>Hình 1. 7: Ví dụ về ảnh màu </small></i>

Khi biểu diễn một ảnh màu, sẽ có dạng nhau sau:

<i><small>Hình 1. 8: Ví dụ về một ma trận biểu diễn ảnh màu </small></i>

Để tiện lưu trữ và xử lý không thể lưu trong 1 ma trận như thế kia mà sẽ tách mỗi giá trị trong mỗi pixel ra một ma trận riêng.

<i><small>Hình 1. 9: Ví dụ về ma trận sau khi tách thành 3 channel </small></i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Mỗi ma trận được tách ra sẽ được gọi là một channel. Vì vậy, ảnh màu sẽ có 3 channel: Channel đỏ, Channel xanh lục, Channel xanh lam.

1.1.3.8 Chuyển hệ màu của ảnh

Mỗi pixel trong ảnh màu được biểu diễn bằng 3 giá trị (R,G,B) còn trong ảnh xám chỉ cần 1 giá trị x để biểu diễn.

Khi chuyển từ ảnh màu sang ảnh xám ta có thể dùng cơng thức sau: x = r * 0.299 + g*0.587 + b*0.114

1.1.3.9 Tích chập (Convolution)

Convolution là kỹ thuật quan trọng trong Xử Lý Ảnh, được sử dụng chính yếu trong các phép toán trên ảnh như: đạo hàm ảnh, làm trơn ảnh, trích xuất biên cạnh trong ảnh.

Theo tốn học, tích chập là phép tốn tuyến tính, cho ra kết quả là một hàm bằng việc tính tốn dựa trên hai hàm đã có (f và g).

Ví dụ: đối với phép lọc ảnh, phép tích chập giữa ma trận lọc và ảnh, cho ra kết quả ảnh đã được xố nhiễu (làm mờ).

Cơng thức tích chập giữa hàm ảnh f(x, y) và bộ lọc k(x, y) (kích thước mxn):

<i><small>Hình 1. 10: Cơng thức tích chập giữa hàm ảnh f(x,y) và bộ lọc k(x,y) </small></i>

Thành phần khơng thể thiếu của phép tích chập là ma trận kernel (bộ lọc). Điểm neo (anchor point) của kernel sẽ quyết định vùng ma trận tương ứng trên ảnh để tích chập, thơng thường anchor point được chọn là tâm của kernel. Giá trị mỗi phần tử trên kernel được xem như là hệ số tổ hợp với lần lượt từng giá trị độ xám của điểm ảnh trong vùng tương ứng với kernel.

Phép tích chập được hình dung thực hiện bằng việc dịch chuyển ma trận kernel lần lượt qua tất cả các điểm ảnh trong ảnh, bắt đầu từ góc bên trái trên của ảnh và đặt anchor point tương ứng tại điểm ảnh đang xét. Ở mỗi lần dịch chuyển, thực hiện tính tốn kết quả mới cho điểm ảnh đang xét bằng công thức tích chập.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>1.2 Cơng nghệ sử dụng </b>

<i><b>1.2.1 Python </b></i>

Python là một ngôn ngữ lập trình thơng dịch do Guido van Rossum tạo ra năm 1990, nó được xem là ngơn ngữ lập trình có hình thức rất đẹp, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của chính Guido van Rossum trong một bài phỏng vấn ơng. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Python có thể được dụng trong rất nhiều lĩnh vực như phát triển phần mềm, phát triển web, phân tích dữ liệu, xử lý ảnh,… và nó hồn tồn có thể chạy trên nhiều hệ điều hành khác nhau như: Unix, MS-DOS, Window, MacOS,…

<i><small>Hình 1. 11: Logo của Python </small></i>

Ưu điểm của Python:

+ Cú pháp đơn giản: Python là một ngơn ngữ lập trình phổ biến, có cộng đồng dùng và nguồn tài liệu phong phú. Cú pháp Python đơn giản, dễ hiểu, giúp người mới bắt đầu dễ dàng tiếp cận và học tập. So với các ngôn ngữ lập trình khác như: C, C++, Java, Python giúp tiết kiệm thời gian và công sức hơn. Ta hãy dùng so sánh 2 đoạn code thực hiện cùng một nhiệm vụ được biên soạn bằng ngôn ngữ Python và C++:

<i><small>Hình 1. 12: Ví dụ về một đoạn code Python </small></i>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i><small>Hình 1. 13: Ví dụ về một đoạn code C++ </small></i>

+ Thư viện hỗ trợ mạnh mẽ: Python có nhiều thư viện hỗ mạnh mẽ như: OpenCV, Pillow, Matplotlib,… Các thư viện này cung cấp nhiều hàm và cơng cụ sẵn có giúp đơn giản hóa việc xử lý các tác vụ chỉnh sửa ảnh như cắt, xoay, điều chỉnh kích thước, điều chỉnh độ sáng, độ tương phản,… Nhờ sử dụng các thư viện hỗ trợ, việc phát triển phần mềm chỉnh sửa ảnh sẽ trở nên hiệu quả và nhanh chóng hơn.

+ Khả năng đa nền tảng: Python có thể được sử dụng để phát triển phần mềm cho nhiều hệ điều hành khác nhau như: Window, macOS, Linux, Android, IOS. Từ đó, giúp phần mềm chỉnh sửa ảnh có thể hoạt động trên nhiều thiết bị khác nhau, đáp ứng nhu cầu sử dụng của người dùng đa dạng.

+ Hiệu suất : Python có có tốc độ thực thi tương đối nhanh, đủ để đáp ứng các yêu cầu cơ bản của phần mềm chỉnh sửa ảnh. Ngoài ra, Python cịn có khả năng tối ưu hóa hiệu suất bằng cách sử dụng các thư viện và công cụ phù hợp.

+ Cộng đồng hỗ trợ: Python có cộng đồng người dùng lớn và hoạt động tích cực, ln sẵn sàng hỗ trợ và giải đáp thắc mắc cho người mới bắt đầu.

Với những ưu điểm trên, chúng em quyết định sử dụng Python để thực hiện đề tài này.

<i><b>1.2.2 Tkinter </b></i>

Tkinter là một thư viện trong ngôn ngữ lập trình Python được sử dụng để tạo giao diện đồ họa người dùng (GUI – Graphic User Interface). Tkinter là một phần của thư viện tiêu chuẩn của Python và đã được tích hợp sẵn trong hầu hết các cài đặt Python. Điều này giúp cho Tkinter trở thành một lựa chọn phổ biến cho việc phát triển ứng dụng với giao diện đồ họa đơn giản trong Python. Một số đặc điểm của Tkinter bao gồm khả năng tạo các thành phần giao diện như cửa sổ, nút, ô văn bản, và các widget khác để

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

tương tác với người dùng. Tkinter cung cấp cả các sự kiện và phương thức để xử lý tương tác người dùng và thay đổi trạng thái của ứng dụng.

<i><small>Hình 1. 14: Logo của Tkinter </small></i>

Ưu điểm:

+ Dễ học, dễ sử dụng: Tkinter là thư viện GUI mặc định đi kèm với Python, không cần cài đặt thêm. Cú pháp Tkinter đơn giản, dễ hiểu, giúp người mới bắt đầu dễ dàng tạo ra giao diện người dùng cho phần mềm.

<i><small>Hình 1. 15: Cú pháp Tkinter để tạo một giao diện </small></i>

<i><small>Hình 1. 16: Giao diện đơn giản được tạo bằng Tkinter </small></i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

+ Nhẹ và nhanh: Tkinter là thư viện GUI không tốn nhiều tài nguyên hệ thống. Nhờ vậy, phần mềm chỉnh sửa ảnh sử dụng Tkinter sẽ hoạt động mượt mà, ổn định trên nhiều cấu hình máy khác nhau, kể cả những máy có cấu hình thấp.

+ Cộng đồng hỗ trợ: Tkinter là thư viện GUI phổ biến, có cộng đồng người dùng lớn và hoạt động tích cực. Ở trên các diễn đàn, trang web có rất nhiều tài liệu cho việc học tập và sử dụng Tkinter.

+ Tích hợp tốt với Python: Tkinter được tích hợp sẵn với Python, giúp việc kết nối giao diện người dùng với mã xử lý ảnh trở nên dễ dàng và hiệu quả. Nhờ vậy, người nghiên cứu có thể tập trung vào việc phát triển các chức năng chỉnh sửa ảnh mà không cần lo lắng về các vấn đề liên quan đến giao diện người dùng.

<i><b>1.2.3 CustomTkinter </b></i>

CustomTkinter là phần mở rộng của mô-đun Tkinter trong Python. Nó cung cấp các thành phần UI bổ sung so với Tkinter và chúng có thể được tùy chỉnh theo nhiều cách khác nhau.

Ví dụ: chúng ta có thể tùy chỉnh một nút bằng CustomTkinter, chúng ta có thể thực hiện các tùy chỉnh như thêm hình ảnh, làm trịn các cạnh, thêm đường viền xung quanh nó, v.v.

<i><b>1.2.4 Thư viện xử lý ảnh PIL </b></i>

PIL là viết tắt của Python Image Library. Đây là một trong những thư viện mã nguồn mở phổ biến cho xử lý ảnh trong Python. Nó hỗ trợ nhiều định dạng hình ảnh như: JPG, PNG, BMP, TIFF,.. Thư viện giúp chúng ta thực hiện nhiều thao tác trên hình ảnh như xoay, thay đổi kích thước, cắt xén,… thơng qua nhiều hàm.

PIL có các ưu điểm sau:

+ Dễ sử dụng: Cú pháp đơn giản, dễ hiểu, phù hợp cho người mới bắt đầu. + Hỗ trợ nhiều định dạng ảnh: Đáp ứng nhu cầu xử lý nhiều loại ảnh khác nhau. + Tốc độ: Tương đối nhanh, đủ để đáp ứng các yêu cầu cơ bản của phần mềm chỉnh sửa ảnh.

+ Cộng đồng hỗ trợ lớn: Nhiều tài liệu hướng dẫn và diễn đàn hỗ trợ giải đáp thắc mắc.

+ Tích hợp tốt với Python: Dễ dàng kết nối với mã xử lý ảnh khác.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><b>1.2.5 Visual Studio Code </b></i>

Visual Studio Code là một trong những trình soạn thảo mã nguồn rất phổ biến được các lập trình viên sử dụng. Visual Studio Code hay còn được viết tắt là VS Code. Trình soạn thảo này vận hành mượt mà trên các nền tảng như Windows, macOS, Linux. Hơn thế nữa, VS Code cịn cho khả năng tương thích với những thiết bị máy tính có cấu hình tầm trung vẫn có thể sử dụng dễ dàng. Với các ưu điểm nổi bật là sự nhanh chóng, nhẹ, hỗ trợ đa nền tảng cùng nhiều tính năng và là mã nguồn mở chính. Visual Studio Code ngày càng được ưa chuộng sử dụng, là lựa chọn hàng đầu của các lập trình viên.

<i><small>Hình 1. 17: Logo của Visual Studio Code </small></i>

Một số ưu điểm của Visual Studio Code:

+ Đa dạng ngơn ngữ lập trình giúp người dùng thỏa sức sáng tạo và sử dụng như HTML, CSS, JavaScript, C++, Python…

+ Ngôn ngữ, giao diện tối giản, thân thiện, giúp các lập trình viên dễ dàng định hình nội dung.

+ Các tiện ích mở rộng rất đa dạng và phong phú.

+ Tích hợp các tính năng quan trọng như tính năng bảo mật (Git), khả năng tăng tốc xử lý vòng lặp (Debug),…

+ Đơn giản hóa việc tìm quản lý hết tất cả các Code có trên hệ thống.

<b>1.3 Tổng quan chức năng </b>

Các chức năng cơ bản: + Thu phóng ảnh (Zoom) + Xoay ảnh (Rotation) + Lật ảnh (Flip)

+ Điều chỉnh độ sáng của ảnh (Brightness) + Điều chỉnh độ rực của ảnh (Vibrance)

+ Chuyển ảnh thành ảnh trắng đen (Black/White) + Đảo màu của ảnh (Invert Color)

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

+ Điều chỉnh độ mờ của ảnh (Blur)

+ Điều chỉnh độ tương phản của ảnh (Contrast) + Điều chỉnh độ sắc nét của ảnh (Sharpness) + Thêm một số bộ lọc cho ảnh

<b>1.4 Kết luận chương 1 </b>

Chương 1 của báo cáo đã giới thiệu lý do chọn đề tài, tập trung vào sự phát triển của công nghệ số, mạng xã hội và các nền tảng trực tuyến. Nói về nhu cầu chỉnh sửa hình ảnh của con người trong cuộc sống hiện nay.

Mục tiêu của đề tài “Xây dựng phần mềm chỉnh sửa ảnh cơ bản với Python” là đáp ứng nhu cầu chỉnh sửa ảnh cơ bản của những người dùng phổ thơng. Đề tài góp phần nâng cao kỹ năng lập trình, một số kỹ thuật thao tác với ảnh, lập trình giao diện GUI. Đề tài sử dụng ngơn ngữ lập trình Python cùng với các thư viện kèm theo như: Tkinter, PIL.

Chương 1 đã cung cấp cái nhìn tổng quan về lý do thực hiện đề tài, mục tiêu, cơ sở lý thuyết và công nghệ cho việc phát triển phần mềm chỉnh sửa ảnh cơ bản nhằm đáp ứng nhu cầu hiện nay. Tiếp theo, chương 2 sẽ mô tả về sản phẩm của đề tài và các bước thực hiện.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>CHƯƠNG 2: MÔ TẢ VỀ SẢN PHẨM </b>

<b>2.1 Xác định yêu cầu </b>

Đề tài “Xây dựng phần mềm chỉnh sửa ảnh cơ bản với Python” được tạo ra với mục đích phát triển một phần mềm chỉnh sửa ảnh cơ bản, dễ sử dụng và miễn phí cho người dùng phổ thơng.

Đề tài sẽ có các chức năng cơ bản như: xoay ảnh, thu phóng ảnh, điều chỉnh độ sáng, độ tương phản, độ sắc nét, làm mờ ảnh,…

<b>2.2 Ý tưởng thiết kế giao diện </b>

Dựa trên các yêu cầu trên, giao diện phải tạo ra phải đẹp và thân thiện, đồng thời tối ưu hóa trải nghiệm người dùng. Sự đơn giản, màu sắc quen thuộc kết hợp với nền tối có thể giúp người dùng giảm mỏi mắt và các tác động tiêu cực của ánh sáng xanh lên đôi mắt trong một số trường hợp.

<b>2.3 Thiết kế giao diện </b>

</div>

×