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

BÁO CÁO BÀI TẬP LỚN XỬ LÝ VÀ TRUYỀN THÔNG ĐA PHƯƠNG TIỆN

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 (615.34 KB, 19 trang )

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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG --- KHOA ĐA PHƯƠNG TIỆN---

BÁO CÁO BÀI TẬP LỚN

<b>XỬ LÝ VÀ TRUYỀN THÔNG ĐA PHƯƠNG TIỆN</b>

<b>Giảng viên hướng dẫn : Vũ Hữu Tiến Nhóm bài tập : 06 </b>

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

2.2. Thư viện OpenCV... 5

2.3. Thư viện PIL/Pillow ... 6

2.4. Thư viện Tkinter ... 7

<b>III. Kết quả và đánh giá ... 14 </b>

<i>1. Kết quả khảo sát người dùng... 14 </i>

<i>2. Một số nhận xét khác từ người dùng: ... 16 </i>

<b>TÀI LIỆU THAM KHẢO ... 18 </b>

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

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

<i>Đầu tiên, nhóm em xin gửi lời cảm ơn chân thành đến Trường Học viện Cơng nghệ Bưu chính Viễn Thông đã đưa môn học Xử lý và truyền thơng đa phương tiện vào trương trình giảng dạy. </i>

<i>Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn - Thầy Vũ Hữu Tiến đã dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua. Trong thời gian tham gia lớp học Xử lý và truyền thông đa phương tiện của thầy, chúng em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc. Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để chúng em có thể vững bước sau này. </i>

<i>Bộ môn Xử lý và truyền thông đa phương tiện là mơn học tuy có hơi khó nhưng rất thú vị, vơ cùng bổ ích và có tính thực tế cao. Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên. </i>

<i>Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ. Mặc dù chúng em đã cố gắng hết sức nhưng chắc chắn bài báo cáo khó có thể tránh khỏi những thiếu sót và nhiều chỗ cịn chưa chính xác, kính mong thầy xem xét và góp ý để bài tiểu luận của nhóm 06 chúng em được hồn thiện hơn. </i>

<i>Lời cuối cùng, xin kính chúc thầy nhiều sức khỏe, thành công và hạnh phúc. </i>

<i>Chúng em xin chân thành cảm ơn! </i>

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

<b>I. Giới thiệu chung 1. Đặt vấn đề </b>

Ngày nay, xã hội ngày càng phát triển. Các ngành công nghiệp, thương mại đang dịch chuyển sang các phương pháp kinh doanh trên nhiều nền tảng khác nhau gồm cả online lẫn offline. Xét điều kiện cụ thể nhiều đối tượng cần các cơng cụ cơ bản để có thể điều chỉnh các hình ảnh của họ một cách nhanh chóng để cập nhật trên các nền tảng. Do đó dựa trên các kiến thức, vốn hiểu biết sẵn có và sự hướng dẫn của giảng

<b>viên Vũ Hữu Tiến , nhóm chúng em chọn đề tài: “Xây dựng ứng dụng xử lý ảnh </b>

<b>bằng Python”. </b>

<i><b>1.1. Lý do chọn đề tài </b></i>

Lý do chọn đề tài bắt nguồn từ yêu cầu trong thực tế là rất nhiều người cần những app chỉnh ảnh nhanh chóng, dung lượng ít, giao diện đơn giản, có thể sử dụng ngay trên điện thoại/máy tính. Đồng thời, các ngành nghề liên quan đến vẽ/thiết kế/thiết kế kỹ thuật cũng cần 1 ứng dụng có thể chỉnh sửa được hình ảnh nhanh chóng, dễ dàng và tiện lợi.

<i><b>1.2. Những nghiên cứu trước đây </b></i>

Đã từng có rất nhiều app chỉnh ảnh ra mắt trước đây cả trên điện thoại lẫn máy tính như: Adobe Photoshop, Adobe Lightroom, Picsart, Snapseed, VSCO,...

<i>− Ưu điểm: </i>

+ Nổi tiếng, có thương hiệu xuất xứ lâu năm.

+ Hỗ trợ chỉnh sửa nhiều định dạng file ảnh khác nhau (JPG, RAW, …). + Có nhiều chức năng với bộ lọc, hiệu ứng phong phú và thường xuyên

được nâng cấp đáp ứng nhu cầu mạnh mẽ của thị trường. + Cộng đồng người dùng lớn, dễ trao đổi và tìm kiếm tài liệu.

+ Adobe Photoshop, Adobe Lightroom có một hệ sinh thái cho các ứng dụng nên có thể trao đổi file làm việc linh động cả hình ảnh lẫn video

<i>− Nhược điểm: </i>

+ Mất phí bản quyền

+ Giao diện phức tạp, nhiều chức năng cần thời gian để tìm hiểu

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

+ Yêu cầu cấu hình máy cao

<i>Hình 1.1. Ví dụ về giao diện phần mềm Photoshop </i>

<b>=> Để giải quyết những nhược điểm và nhu cầu người dùng, chúng em đã cùng nhau </b>

nghiên cứu, thu thập dữ liệu từ người dân để tạo lên một nền tảng chỉnh ảnh cơ bản với những nút chức năng cần thiết và giao diện phù hợp với thị hiếu cơng chúng.

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

<i>Hình 1.2. Q trình xử lý ảnh </i>

Ảnh có thể xem là tập hợp các điểm ảnh, mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong khơng gian và nó có thể xem như một hàm n biến P(c1,c2,...cn). Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.

<i>Hình 1.3. Mơ tả chi tiết q trình xử lý ảnh </i>

<i><b>2.2. Thư viện OpenCV </b></i>

OpenCV là mã nguồn mở của Intel, nó là một thư viện có khả năng nhúng vào các chương trình có khả năng nhận diện hình ảnh của máy tính. Nó bao gồm các khả năng tiên tiến như phát hiện khuôn mặt, theo dõi, nhận diện khn mặt,... Ngồi ra, nó cũng cấp rất nhiều các thuật tốn xử lý ảnh thơng qua các hàm API.

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

<i>Hình 1.4. Các khả năng của OpenCV có thể là nhận diện khn mặt (trên cùng bên trái), phát hiện đường đồng mức (trên bên phải), và phát hiện cạnh (phía dưới) </i>

OpenCV là thư viện được thiết kế để chạy trên đa nền tảng, nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS. Với các tính năng đó thì OpenCV được ứng dụng trong nhiều lĩnh vực:

<i>− Chụp ảnh: Cải thiện chất lượng ảnh, giảm nhiễu, điều chỉnh độ sáng, độ tương </i>

phản, màu sắc, thêm hiệu ứng.

<i>− Y tế: Phân tích hình ảnh y tế như X-quang, MRI, CT scan để chẩn đoán bệnh. − An ninh: Nhận diện khuôn mặt, biển số xe, dấu vân tay. </i>

<i>− Khoa học máy tính: Nhận dạng đối tượng, phân loại ảnh, theo dõi chuyển động. − Giải trí: Chỉnh sửa video, tạo hiệu ứng đặc biệt cho phim ảnh. </i>

<i>− Robot: Giúp robot di chuyển và tương tác với môi trường xung quanh. − Xe tự lái: Nhận diện biển báo giao thông, vạch kẻ đường, người đi bộ, v.v. − Nơng nghiệp: Phân tích hình ảnh cây trồng để phát hiện sâu bệnh, theo dõi quá </i>

trình sinh trưởng.

<i><b>2.3. Thư viện PIL/Pillow </b></i>

Pillow là một thư viện mã nguồn mở phổ biến cho xử lý ảnh cho ngôn ngữ Python. Nó cung cấp nhiều chức năng mạnh mẽ để thao tác hình ảnh bao gồm:

<i>− Đọc và ghi các định dạng ảnh phổ biến: JPEG, PNG, GIF, BMP, TIFF, v.v. − Chuyển đổi giữa các định dạng ảnh. </i>

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

<i>− Thay đổi kích thước ảnh: Thay đổi kích thước, cắt xén, xoay ảnh. </i>

<i>− Chỉnh sửa ảnh: Điều chỉnh độ sáng, độ tương phản, màu sắc, thêm hiệu ứng. − Vẽ hình ảnh: Vẽ đường thẳng, hình dạng, văn bản lên ảnh. </i>

<i>− Lọc ảnh: Áp dụng các bộ lọc để làm mờ, làm sắc nét, gán cạnh, v.v. − Hợp tác ảnh: Ghép ảnh, tạo ảnh ghép, thêm watermark. </i>

Bên cạnh đó vì nó là một thư viện mã nguồn mở (Open Source) nên có một cộng đồng lớn có rất nhiều tài liệu cũng như hướng dẫn sử dụng, các tính năng được cập nhật thường xuyên, cải tiến. Hỗ trợ đa nền tảng trên nhiều hệ điều hành: Windows, macOS, Linux

<i><b>2.4. Thư viện 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). "Tkinter" là viết tắt của "Tk interface,", một toolkit đồ họa cung cấp các công cụ để phát triển giao diện người dùng.

<i>Hình 1.5. Logo của Tkinter </i>

Trong Tkinter có nhiều Widget khác nhau người dùng có thể đưa vào để thiết kế giao diện:

<i>− Label: Thông thường nhãn được hiển thị văn bản hoặc hình ảnh tĩnh. − Tkinter: Button để thêm nút có thể nhấn </i>

<i>− Entry (Ơ nhập liệu): Nhập văn bản từ người dùng. </i>

<i>− Scale: Cung cấp thanh trượt cho người dùng để chọn giá trị trong một dải </i>

và rất nhiều Widget khác nữa như canvas, frame, menu, scrollbar, text,....

Đồng thời Tkinter cung cấp một số phương pháp để sắp xếp các widget, trong đó có ba phương pháp chính:

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

<i>− Pack Layout − Grid Layout − Place Layout </i>

Chính vì vậy, Tkinter có rất nhiều ưu điểm và phù hợp với những người cần phát triển các ứng dụng GUI đơn giản, nhẹ và hiệu quả.

<b>3. Kết luận </b>

Từ những tìm hiểu trên, nhóm chúng em lựa chọn làm phần mềm chỉnh sửa ảnh trên máy tính ứng dụng các cơng nghệ cơ bản trong xử lý ảnh như xoay ma trận 2D, phép biến đổi affine, phép lấy mẫu, lọc convolution,...

<b>II. Mô tả sản phẩm 1. Giới thiệu </b>

Phần 1 đã trình bày khái quát về lý do chọn đề tài cũng như các phạm vi kiến thức liên quan. Đồng thời cũng nhấn mạnh mục đích, vai trị của dự án lần này. Để áp dụng các lý thuyết đã trình bày ở phần 1, phần này sẽ giới thiệu chi tiết các thuật toán chúng em đã sử dụng cũng như dàn trang sắp xếp layout dùng Tkinter..

<b>2. Trình tự xây dựng hệ thống app chỉnh ảnh </b>

<b>Bước 1: Thu nhập phân tích dữ liệu </b>

Để hiểu rõ hơn về người dùng, nhóm chúng em đã tạo một cuộc khảo sát về trải nghiệm sử dụng ứng dụng chỉnh ảnh trên điện thoại. Kết quả thu được dựa trên 23 người dùng điền bảng khảo sát cho thấy:

− Phạm vi, đối tượng người dùng

+ Độ tuổi sử dụng app chỉnh ảnh phổ biến nhất là từ 18-26 (chiếm 72%) + Trình độ học vấn: tốt nghiệp trung học phổ thông trở lên.

+ Mức độ thành tạo: từ thấp đến trung bình − Các thói quen sử dụng

+ Tần suất sử dụng: hiếm khi (chiếm 72%)

+ Mục đích: sở thích cá nhân (64%), dành cho mạng xã hội (60%)

+ Các thao tác thường thực hiện: crop ảnh (66%), chỉnh sáng (47%), làm mờ ảnh (40%), hiệu ứng đặc biệt (20%)….

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

+ Mức quan trọng của giao diện dễ sử dụng đối với việc quyết định sử dụng ứng dụng: từ 3/5-4/5

− Các phần mềm của đối thủ

+ Mức độ hài lòng về một số phần mềm chỉnh sửa ảnh trên máy tính hiện có trên thị trường: Adobe Photoshop(3/5), Adobe Lightroom(4/5), Photoscape(3/5), GIMP (3/5)

<b>Bước 2: Phân tích hệ thống </b>

Từ yêu cầu đề bài, khả năng của nhóm và nhu cầu thực tế của người dùng, chúng em quyết định làm một ứng dụng trên máy tính có những đặc điểm sau:

− Ứng dụng trên máy tính − Ngơn ngữ lập trình: Python

− Các chức năng: Làm mờ ảnh (Blur), Xoay ảnh (Rotate), Xác định đường biên của ảnh (Detect Edges) và Làm lại từ đầu (Reset All) (trong trường hợp người dùng muốn thay đổi phần chỉnh sửa)

− Lượng thông tin vừa đủ, đơn giản, tiện lợi để tất cả mọi người ai cũng dùng được dễ dàng, không bị ngợp

<b>Bước 3: Thiết kế hệ thống </b>

<i><b>a. Ý tưởng </b></i>

Nhóm chọn mơ hình thiết kế giao diện đơn giản, dễ nhìn với các nút thiết kế theo hơi hướng truyền thống. Các nút, vị trí được sắp xếp ngay trọng tâm để thu hút người dùng khi mới mở app mà không bị rối. Về màu sắc, dùng 2 màu chính là màu đỏ (màu biểu tượng của Học viện Công nghệ Bưu chính Viễn thơng) và màu trắng.

<i><b>b. Thiết kế logic: </b></i>

Phần mềm có 3 chức năng chính đó là Làm mở ảnh (Blur), Xoay ảnh (Rotate) và Xác định đường biên của ảnh (Detect Edges).

<i><b>b.1. Chức năng làm mờ ảnh (Blur image) </b></i>

Với đoạn mã Python dưới, chúng em sử dụng các hàm trong thư viện OpenCv để thực hiện làm mờ ảnh. Độ mờ được tính theo tham số blur amount.

Tổng quan thuật toán:

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

Chi tiết đoạn code

def blur_image(image, blur_amount): if blur_amount == 0:

<i>+ image: Hình ảnh bị mờ (được truyền từ các đối số của hàm). </i>

<i>+ (blur_amount, Blur_amount): Đây là kích thước hạt nhân cho bộ lọc làm </i>

mờ Gaussian. Nó được tạo dưới dạng một bộ dữ liệu bằng cách sử dụng giá trị Blur_amount lẻ được đảm bảo. Kích thước hạt nhân lớn hơn dẫn đến hiệu ứng làm mờ đáng kể hơn.

<i>+ 0: Đây là giá trị sigma (độ lệch chuẩn) của phân bố Gaussian được sử </i>

dụng để làm mờ. Giá trị 0 cho phép OpenCV tính tốn sigma tối ưu dựa trên kích thước hạt nhân.

<i><b>b.2. Chức năng xoay ảnh (Rotate image) </b></i>

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

Với đoạn mã Python dưới, chúng em sử dụng các hàm trong thư viện OpenCv để thực hiện xoay ảnh dựa trên ma trận xoay. Góc quay được tính theo tham số angle.

Tổng quan thuật toán:

Chi tiết đoạn code

def rotate_image(image, angle):

center = (image.shape[1] // 2, image.shape[0] // 2)

rotation_matrix = cv2.getRotationMatrix2D(center, angle, 1)

rotated_image = cv2.warpAffine(image, rotation_matrix, (image.shape[1], image.shape[0]))

return rotated_image Giải thích:

<i>− Hàm rotate_image: Hàm này thực hiện xoay ảnh dựa trên góc xoay được cung </i>

cấp. Nó sử dụng hai hàm của OpenCV:

<i>− cv2.getRotationMatrix2D để tính tốn ma trận xoay 2D. Ma trận này được xác </i>

định bởi ba tham số:

<i>+ Center: Trung tâm của ảnh, nơi xoay sẽ xảy ra. Code tính tốn trung tâm </i>

này bằng (image.shape[1] // 2, image.shape[0] // 2), lấy tọa độ trung tâm dựa trên chiều rộng và chiều cao của ảnh.

<i>+ Angle: Góc xoay theo độ. Giá trị góc được lấy từ đầu vào người dùng </i>

thơng qua thanh trượt (rotate_scale).

<i>+ Scale: Trong trường hợp này, scale được đặt thành 1, nghĩa là kích thước </i>

ảnh không thay đổi trong khi xoay.

<i>− cv2.warpAffine để áp dụng phép biến đổi affine (bao gồm xoay) cho ảnh bằng </i>

cách sử dụng ma trận xoay đã tính tốn. Hàm này nhận 3 đối số:

<i>+ Input Image: Ảnh cần xoay (lấy từ image_cv). </i>

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

<i>+ Rotation Matrix: Ma trận xoay 2D được tạo bởi </i>

cv2.getRotationMatrix2D.

<i>+ dsize: Kích thước ảnh đầu ra. Do scale được đặt thành 1 trong ma trận </i>

xoay, kích thước ảnh đầu ra vẫn giữ nguyên kích thước ảnh đầu vào ((image.shape[1], image.shape[0])).

<i><b>b.3. Chức năng Detect Edges: </b></i>

Tổng quan thuật toán:

**edge_detection(image)**: -Input: Ảnh gốc (`image`).

-Output: Ảnh đã được phát hiện cạnh.

- Hoạt động: Hàm này thực hiện phát hiện cạnh trong ảnh sử dụng phương pháp Canny.

Chi tiết đoạn code

def edge_detection(image):

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) edges = cv2.Canny(gray, 100, 200)

return edges Giải thích:

<i>− cv2.cvtColor(image, cv2.COLOR_BGR2GRAY): Dịng này chuyển đổi hình ảnh </i>

đầu vào ở hệ màu BGR (Xanh lam, Xanh lục, Đỏ), thành hệ màu xám (grayscale). Các thuật toán phát hiện cạnh thường hoạt động tốt hơn trên hệ màu grayscale vì chúng tập trung vào sự thay đổi sắc độ hơn là sự khác biệt về màu sắc. Hàm cv2.cvtColor từ thư viện OpenCV được sử dụng cho chuyển đổi này.

<i>− cv2.Canny(gray, 100, 200): Dòng này là cốt lõi của quá trình phát hiện cạnh. </i>

Sử dụng thuật toán phát hiện cạnh Canny, một phương pháp phổ biến và hiệu

<i>quả để tìm cạnh trong hình ảnh. Hàm cv2.Canny nhận 3 đối số: </i>

<i><b>+ grey: Hình ảnh thang độ xám thu được ở bước trước. </b></i>

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

<i><b>+ 100: Đây là giá trị ngưỡng đầu tiên được thuật toán Canny sử dụng </b></i>

để xác định các cạnh mạnh. Các cạnh có độ dốc vượt quá ngưỡng này được coi là các cạnh tiềm năng.

<i><b>+ 200: Đây là giá trị ngưỡng thứ hai được thuật toán Canny sử dụng để </b></i>

tinh chỉnh việc phát hiện cạnh. Chỉ các cạnh có độ dốc trên ngưỡng đầu tiên (100) và được kết nối với một cạnh mạnh khác (có độ dốc vượt quá ngưỡng thứ hai, 200) mới được coi là các cạnh thực. Các giá trị thích hợp cho các ngưỡng này có thể khác nhau tùy thuộc vào nội dung hình ảnh và độ nhạy cạnh mong muốn.

<i><b>c. Thiết kế vật lý </b></i>

Nhóm quyết định thiết kế một giao diện đơn giản, dễ sử dụng cho phần mềm.

<i>Hình 2.1. Giao diện chính của phần mềm </i>

Phía trên là nơi để nhập ảnh cũng như các tính năng chỉnh sửa cơ bản.

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

<i>Hình 2.2. Nơi nhập ảnh và các tính năng chỉnh sửa ảnh </i>

Phía dưới là nút Reset All (làm lại từ đầu) trong trường hợp người dùng muốn đổi ý. Và ở dưới cùng là nút Save Processed Image (Lưu ảnh).

<i>Hình 2.3. Nút Reset all và Save </i>

Sau khi nhập ảnh, ảnh sẽ hiển thị ở giữa 2 phần trên.

<b>III. Kết quả và đánh giá </b>

Sau khi hoàn thành xong các chức năng và chỉnh sửa đến khi khơng cịn lỗi về đoạn code, giao diện, tương tác, nhóm chúng em xuất ra file .Exe và testing. Kết quả được thử nghiệm với các thành viên nhóm và người khác.

<b>1. Kết quả từ sản phẩm </b>

<i>Hình 3.1. Ảnh gốc chưa qua chỉnh sửa </i>

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

<i> Hình 3.2. Ảnh sử dụng Blur Hình 3.3. Ảnh sử dụng Rotate </i>

<i>Hình 3.4. Ảnh sử dụng Detect Edges Hình 3.5. Ảnh sử dụng cả 3 chức năng </i>

<b>2. Kết quả khảo sát người dùng </b>

4 Nguyễn Tiến Thành Không ổn

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

6 Nguyễn Cảnh Nam Không ổn

<i>Hình 3. Biểu đồ thể hiện mức độ hài lòng của người dùng với sản phẩm </i>

<b>3. Một số nhận xét khác từ người dùng: </b>

− Ưu điểm:

+ Ứng dụng đơn giản, thoải mái mắt người xem. Việc chọn 2 màu đơn giản cũng như các hình khối nhìn thống mắt, thu hút người dùng + Các nút tương tác khá mượt, không bị lag

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

Tiếp thu những ý kiến trên, nhóm chúng em sẽ cố học hỏi thêm để khắc phục những nhược điểm bên trên và tiếp tục phát triển những đặc điểm đánh giá là tốt.

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

Tổng kết lại, ứng dụng chỉnh sửa ảnh của nhóm 06 là một cơng cụ đơn giản nhưng hữu ích giúp người dùng xử lý những bức ảnh một cách nhanh chóng và độc đáo. Những tính năng của sản phẩm cung cấp cho người dùng 3 thao tác chinh ảnh quan trọng: Xoay ảnh, làm mờ ảnh và phát hiện cạnh. Từ những tính năng này người dùng có thể áp dụng vào đa ngành nghề: báo chí, nghệ thuật, bán hàng,... Tuy nhiên, ứng dụng còn một số hạn chế về khả năng tương thích với các thiết bị và tính năng cịn hạn chế, khơng được đa dạng như nhiều ứng dụng khác trên thị trường. Vì vậy nếu có điều kiện phát triển chun sâu, nhóm chúng em mong muốn tương lai có thể cải tiến sản phẩm bằng cách phát triển thêm mặt hiển thị với người dùng cũng như tích hợp thêm nhiều những tính năng nữa vào để đáp ứng tốt hơn so với mong muốn của người dùng.

</div>

×