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

45 1 0
Tài liệu đã được kiểm tra trùng lặp
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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à hoà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".. Chính vì thế, chún

Trang 1

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

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

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

Nhóm sinh viên: 02

Trang 2

LỜI CẢM ƠN

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à hoà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!

Nhóm sinh viên thực hiện,

[Nhóm 2]

Trang 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

CHƯƠNG 2: MÔ TẢ VỀ SẢN PHẨM 22

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

Trang 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

KẾT LUẬN 44

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

DANH MỤC TÀI LIỆU THAM KHẢO 45

Trang 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

Trang 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

Trang 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

Trang 8

MỞ ĐẦU

1 Đặt vấn đề

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 quá phức tạp và đòi hỏi kỹ năng cao Ngoà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í

2 Mục tiêu chọn đề tài

Đề 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

Ngoà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

Trang 9

3 Bố cục đề tài

Đề 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á

Trang 10

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1 Giới thiệu về Xử lý ảnh

1.1.1 Tổng quan về xử lý ảnh

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 chuyên 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ụ quá 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

1.1.2 Các giai đoạn chính về xử lý ảnh

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

Hình 1 1: Mô hình tổng quát của một hệ thống xử lý ảnh

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ố hoá Ả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

Trang 11

Hình 1 2: So sánh giữa ảnh thật và ảnh kỹ thuật số

Trang 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

Trang 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

Hình 1 7: Ví dụ về ảnh màu

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

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

Để 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

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

Trang 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 toán học, tích chập là phép toán tuyến tính, cho ra kết quả là một hàm bằng việc tính toá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 xoá 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):

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)

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 toán kết quả mới cho điểm ảnh đang xét bằng công thức tích chập

Trang 16

1.2 Công nghệ sử dụng

1.2.1 Python

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ó hoàn toàn có thể chạy trên nhiều hệ điều hành khác nhau như: Unix, MS-DOS, Window, MacOS,…

Hình 1 11: Logo của Python

Ư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++:

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

Trang 17

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

+ 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, luôn 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

1.2.2 Tkinter

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 để

Trang 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

Hình 1 14: Logo của Tkinter

Ư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

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

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

Trang 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

1.2.3 CustomTkinter

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

1.2.4 Thư viện xử lý ảnh PIL

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

Trang 20

1.2.5 Visual Studio Code

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

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

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

1.3 Tổng quan chức năng

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)

Trang 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

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

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

Trang 22

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

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

Đề 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,…

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

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

2.3 Thiết kế giao diện

Ngày đăng: 16/06/2024, 17:02