1. Trang chủ
  2. » Luận Văn - Báo Cáo

“Xây dựng chương trình xử lý ảnh chạy trên thiết bị di dộng cho phép xử lý ảnh với các thao tác lọc ảnh và ghi kết quả thành file

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Chương Trình Xử Lý Ảnh Chạy Trên Thiết Bị Di Động Cho Phép Xử Lý Ảnh Với Các Thao Tác Lọc Ảnh Và Ghi Kết Quả Thành File
Tác giả Ngô Xuân Lộc
Người hướng dẫn Ts. Nguyễn Hữu Tuân
Trường học Trường Đại Học Hàng Hải Việt Nam
Chuyên ngành Xử Lý Ảnh
Thể loại báo cáo bài tập lớn
Năm xuất bản 2024
Thành phố Hải Phòng
Định dạng
Số trang 29
Dung lượng 5,05 MB

Nội dung

MỞ ĐẦUKhoảng đầu thế kỉ XXI trở lại đây, phần cứng máy tính và các thiết bịliên quan đã có sự tiến bộ vượt bậc về tốc độ tính toán, dung lượng chứa,khả năng xử lý, v..v… và giá trị tiền

Trang 1

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM

VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO

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

HỌC PHẦN: XỬ LÝ ẢNH

Đề tài : “Xây dựng chương trình xử lý ảnh chạy trên thiết

bị di dộng cho phép xử lý ảnh với các thao tác lọc ảnh và ghi kết quả thành file”

Giảng viên hướng dẫn: Ts Nguyễn Hữu Tuân

Thành viên nhóm: Ngô Xuân Lộc(94301)

Lớp : Cnt62cl

HẢI PHÒNG, ngày 30 tháng 4 năm 2024

Trang 2

MỞ ĐẦU

Khoảng đầu thế kỉ XXI trở lại đây, phần cứng máy tính và các thiết bịliên quan đã có sự tiến bộ vượt bậc về tốc độ tính toán, dung lượng chứa,khả năng xử lý, v v… và giá trị tiền tệ đã giảm đến mức máy tính và cácthiết bị liên quan đến xử lý ảnh đã không còn là thiết bị chuyên dụng nữa.Khải niệm ảnh số đã trở nên thông dụng với hầu hết mọi người trong xãhội và việc thu nhận ảnh số bằng các thiết bị cá nhân hay chuyên dụngcùng với việc đưa vào máy tính xử lý đã trở nên đơn giản

Trong hoàn cảnh đó, xử lý ảnh là một lĩnh vực đang được quan tâm và

có tốc độ phát triển rất nhanh, kích thích các trung tâm nghiên cứu, ứngdụng, đặc biệt là máy tính chuyên dụng riêng của nó Xử lý ảnh là ngànhkhoa học nghiên cứu các thuật toán thu nhận, xử lý ảnh số trên các hệthống máy tính với mục đích làm tăng cường chất lượng của hình ảnh thunhận được, và đồng thời có thể làm nền tảng cho các ngành khoa học ứngdụng khác như Thị giác máy tính, Robotics, xử lý ảnh y học,…

Trang 3

CHƯƠNG 1: GIỚI THIỆU

1.1 Mục đích.

Đối với thời đại hiện nay, sự phát triển của công nghệ đã góp phầnkhiến Xử lý ảnh trở nên hữu hiệu và có lợi ích với nhiều ban ngành chứkhông chỉ riêng đối với Khoa học máy tính và nghệ thuật Còn đối với cácsinh viên chuyên ngành công nghệ thông tin thì Xử lý ảnh là một lĩnh vựcđang được quan tâm và đã trở thành môn học chuyên ngành đối với nhiềutrường cao đẳng, đại học trên toàn quốc

Đề tài “Xây dựng chương trình xử lý ảnh chạy trên thiết bị di dộng chophép xử lý ảnh với các thao tác lọc ảnh và ghi kết quả thành file.” được emnghiên cứu và xây dựng nhằm mục đích thực hiện các phép lọc ảnh cơ bản,giúp người học mới tiếp cận môn học dễ dàng hình dung ra các khái quát,công dụng của các phép lọc một cách rõ ràng hơn Ngoài ra còn có thể dựatrên các khái quát cơ bản đó để phát triển lên các ứng dụng, chương trìnhhoàn thiện hơn, phức tạp hơn, được nghiên cứu sâu xa hơn

1.2 Phương hướng xây dựng.

Quá trình lựa chọn đề tài và nghiên cứu đề tài song song cùng với quátrình học tập trên giảng đường nên tiến độ được dự đoán sẽ hoàn thànhcùng với tuần kết thúc học phần Trong quá trình nghiên cứu đề tài, nhómthực hiện tuần tự các bước: Nghiên cứu cơ sở lý thuyết các phép toán, thựchành lý thuyết để viết thành code các hàm quan trọng, chạy thử nghiệmchương trình và ghi nhận kết quả

Trang 4

Với thời gian và năng lực có hạn nên phần mềm vẫn còn nhiều thiếusót mong thầy, cô, bạn bè có thể cùng giúp đỡ và đóng góp ý kiến với em.

1.4 Bố cục báo cáo.

Bản báo cáo bao gồm 3 phần chính:

 Phần 1: Giới thiệu về đề tài nghiên cứu của nhóm

 Phần 2: Xây dựng chương trình

 Phần 3: Cài đặt và thực hiện chạy thử nghiệm chương trình

Trang 5

CHƯƠNG 2: XÂY DỰNG PHẦN MỀM LỌC ẢNH

SỬ DỤNG CÁC BỘ LỌC TRÊN THIẾT BỊ DI

ĐỘNG

1 Giới Thiệu Các phép lọc ảnh

1.1 Phép lọc trung bình (Mean Filter).

Nhân của phép lọc là 1 cửa sổ kích thước là WxH (W, H là các số lẻ).Tại mỗi vị trí điểm ảnh input, tính giá trị trung bình của các điểm ảnhthuộc lân cận bao bởi nhân của phép lọc và gán cho giá trị ở vị trí điểm ảnhoutput tương ứng

1.2 Phép lọc trung vị (Median Filter).

Phần tử trung vị (median element): là phần tử ở vị trí trung tâm của tậpgiá trị sau khi đã sắp xếp theo thứ tự

Phép lọc trung vị sử dụng 1cửa sổ (nhân) kích thước WxH và di chuyểnqua các điểm ảnh của ảnh input, tại mỗi vị trí, tính giá trị trung vị của cácđiểm ảnh nằm trong cửa sổ lọc và gán cho điểm ảnh output tương ứng.Phép lọc trung vị đặc biệt có hiệu quả khi loại bỏ các nhiễu muối tiêu(salt and pepper) vì lọc trung vị sẽ loại bỏ các giá trị cực trị khỏi ảnh input.Phép lọc trung vị giữ lại các giá trị thật của ảnh input Tác dụng làm mịn

có nhưng không mạnh

Phép lọc trung vị chậm hơn so với lọc trung bình vì cần phải sắp xếp đểtìm các giá trị trung vị

1.3 Phép lọc Gauss (Gaussian Filter).

Các giá trị của nhân lọc Gauss được sinh theo công thức phân bố chuẩnGauss như sau:

G σ= 1 2e

−(x2+ y2 )

2σ2

Trang 6

 Phép lọc Gauss được thực hiện bằng cách áp dụng phép nhân chập

1 nhân Gaus với ảnh input

 Bộ lọc Gauss là bộ lọc nhiễu tốt nhất, cho kết quả ảnh mịn(smooth) tốt nhất ( tự nhiên nhất)

 Bộ lọc Gauss sử dụng phép nhân chập được cài đặt sẵn trong cácthư viện, nền tảng lập trình – rất nhanh

1.4 Phép lọc làm sắc nét tuyến tính ( Linear Sharpen Filter).

Dựa vào nguyên lý xử lý tín hiệu: làm mờ ảnh là loại bỏ các tín hiệu ởtần số cao (các chi tiết sắc nét của ảnh) nên nếu áp dụng ngược ( 1 – bộ lọclàm mờ) thì sẽ nhận được ảnh tăng cường các tần số cao (ảnh nét hơn) vàgiảm bớt các tần số thấp

Công thức:

I sharp =I +γ(II smooth)=( 1)I −γ I smooth

Bộ lọc làm sắc nét tuyến tính ngoài việc làm ảnh sắc nét hơn còn có tácdụng loại bỏ các quầng sáng do bị ảnh sáng bởi điều kiện chụp nên hayđược dùng trong các thiết bị thu nhận ảnh số

Có thể áp dụng phép nhân chập 1 ảnh với 1 nhân để làm mờ ảnh haysắc nét ảnh: Các bộ lọc làm mờ ảnh có các giá trị của nhân là không âm và

có giá trị trung bình bằng 1

Còn các nhân có phần tử của nhân là âm thì sẽ có tác dụng làm sắcnét ảnh

1.5 Phép lọc đạo hàm của ảnh (Gradient Image Filter).

Đạo hàm (gradient hay derivative) của một hàm f(x) được định nghĩanhư sau:

f '(x)=lim¿∆ x →0((f(x + ∆ x)−f(x))

∆ x )yy '¿

Trang 7

Đạo hàm là đại lượng đo mức độ thay đổi của giá trị hàm số trên số giacủa biến số.

Tính đạo hàm để tìm các điểm cực trị của hàm số tương ứng với các giátrị biến số làm đạo bằng 0 và biết tính chất của hàm số

Đạo hàm của ảnh là 1 bức ảnh để đo mức độ thay đổi của cường độsáng theo 1 hướng

1.6 Phát hiện biên (Edge Detection).

Các biên của ảnh (edges) thường nằm ở các vùng ảnh mà độ tương phản

về cường độ sáng rất cao Thường thì đây là những vị trí biểu diễn đườngbiên giới ngăn cách các đối tượng khác nhau trong ảnh Biểu diễn ảnh quacác biên có ưu điểm là lượng dữ liệu cần để biểu diễn ảnh nhỏ trong khivẫn giữ được hầu hết các thông tin cần thiết từ ảnh

 Có 3 bước cơ bản để thực hiện phát hiện biên của một ảnh:Bước 1: Lọc nhiễu (noise reduction) Ở bước này các nhiễu sẽ bị loại bỏcàng nhiều càng tốt nhưng không được ảnh hưởng quá nhiều tới các biên.Bước 2: Tăng cường chất lượng các biên Sử dụng một bộ lọc mạnh(thường là bộ lọc làm sắc nét) đối với các biên để xác định các biên là cáccực trị cục bộ của kết quả phép lọc

Bước 3: Xác định vị trí các biên Các điểm cực trị cục bộ sẽ được xácđịnh là các biên hay chỉ là kết quả của nhiễu tác động lên

 Phát hiện biên dựa vào gradient của ảnh

Ảnh input sẽ được nhân chập với hai kernel filter theo các hướng x và y

để sinh ra đạo hàm bậc nhất theo các hướng này, khi đó gradient của ảnh sẽđược xem như một vector hai thành phần:

∆ f(x , y)=g=(g x

g y)=(h x ⨂ f ( x, y)

h y ⨂ f (x , y ))Hai thành phần quan trọng để biểu diễn gradient của ảnh là magnitude

và orientation (phase, direction) được tính như sau:

Trang 8

1.7.1 Phép lọc thông thấp (Lowpass Filters).

Kỹ thuật lọc thông thấp sẽ giới hạn dữ liệu ảnh chỉ còn các thành phần

có tần số thấp bằng cách làm suy yếu các thành phần có tần số cao và giữnguyên đối với các thành phần ở tần số thấp (cho qua) Lọc thông thấp làphép lọc quan trọng và phổ biến nhất trong các kỹ thuật lọc ảnh dựa vàoDFT Kết quả trong miền không gian của phép lọc thông thấp tương đươngvới việc làm mượt ảnh (smoothing filter) và loại bỏ các tần số cao tươngứng với các thay đổi lớn về cường độ, hoặc các nhiễu Vì vậy bộ lọc thôngthấp hay được sử dụng để làm mượt (smooth) hoặc làm mờ (blur) ảnh

 Lọc thông thấp lý tưởng (ideal Lowpass Filters)

D0 được gọi là giá trị cắt tần số (cut-off frequency) hoặc bán kính cắt tần

số (cut-off radius) Đối với các bộ lọc thông thấp, giá trị này càng giảm thì các tần số cao sẽ bị cắt bỏ càng nhiều

Trang 9

chỉ có thể khắc phục được bằng cách dùng bộ lọc tốt hơn Gaussianlowpass filter.

Bộ lọc Gaussian khắc phục tốt hơn hiện tượng ringing effect

Bộ lọc Gaussian là bộ lọc thông thấp tốt nhất: tác dụng lọc nhiễu và làmmịn ảnh tốt nhất

1.7.2 Phép lọc thông cao (Highpass Filters).

Lọc thông cao là ngược lại của lọc thông thấp: chỉ cho đi qua hoặc giữlại các tín hiệu có tần số cao, loại bỏ các tín hiệu có tần số thấp => ảnh kếtquả sau khi lọc sẽ sắc nét hơn (tăng cường nhiễu)

Nguyên tắc thực hiện phép lọc ảnh giống các phép lọc thông thấp chỉkhác là nhân lọc:

Trang 10

 Lọc thông cao Butterworth.

Nguyên tắc và cách tiền hành như bộ lọc lý tưởng, chỉ có nhân lọc đượcsinh ra theo công thức

 Bộ lọc thông cao Gaussian

Với bộ lọc Gaussian, hàm lọc H(u,v) được cho bởi công thức:

 Các bộ lọc thông cao thường được sử dụng để làm sắc nét ảnh và khôiphục các chi tiết biên bị mất hay mờ

Trang 11

1.8 Phép lọc song phương.

Bộ lọc Bilateral là bộ lọc dựa trên ý tưởng kết hợp một bộ lọc tuyếntính với các trọng số dựa trên quan hệ của mỗi điểm ảnh với các điểm lâncận của nó và loại bỏ các điểm mà giá trị của nó (màu sắc) quá xa so vớiđiểm đang xét Xét theo quan điểm loại bỏ điểm thì bộ lọc này giống vớicác bộ lọc Median Cụ thể, mỗi điểm ảnh output sẽ được tính dựa vào cácđiểm lân cận của nó bằng công thức:

Trang 12

CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM

3.1 Cài đặt

3.1.1 Công cụ sử dụng:Android Studio

Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại smartphone, các tablet Android Studio được đóng gói với một

bộ code editor, debugger, các công cụ performance tool và một hệ thống build/deploy (trong đó có trình giả lập simulator để giả lập môi trường của thiết

bị điện thoại hoặc tablet trên máy tính) cho phép các lập trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp

Việc xây dựng một ứng dụng mobile (hoặc tablet) bao gồm rất nhiều các công đoạn khác nhau Đầu tiên chúng ta sẽ viết code ứng dụng sử dụng máy tính cá nhân hoặc laptop Sau đó chúng ta cần build ứng dụng để tạo file cài đặt Sau khi build xong thì chúng ta cần copy file cài đặt này vào thiét bị mobile (hoặc table) để tiến hành cài đặt ứng dụng và chạy kiểm thử (testing) Bạn thử tưởng tượng nếu với mỗi lần viết một dòng code bạn lại phải build ứng dụng, cài đặt trên điện thoại hoặc tablet và sau đó chạy thử thì sẽ vô cùng tốn thời gian và công sức Android Studio được phát triển để giải quyết các vấn đề này Với Android Studio tất cả các công đoạn trên được thực hiện trên cùng một máy tính

và các quy trình được tinh gọn tới mức tối giản nhất

3.1.1.1 Cách Cài Đặt Android Studio

+ Tải Android Studio

Trước khi tiền hành cài đặt Android Studio bạn cần tải Android Studio về máy bằng cách truy cạp vào đường link này và chọn phiên bản Android Studio phù hợp với hệ điều hành mà bạn đang sử dụng Trang tải Android Studio ở trên có

sử dụng một đoạn mã JavaScript được để phát hiện ra hệ điều hành máy tính của bạn và cung cấp phiên bản Andoid Studio phù hợp Và do đó bạn chỉ việc nhấp vào link sẵn có trên trang để tải về

+ Cài Đặt Android Studio

Hệ Điều Hành Windows

Việc cài đặt Android Studio trên Windows khá đơn giản Sau khi tải xong bạn nhấp đúp vào file cài đặt để tiến hành cài đặt Quá trình cài đặt không có gì đặc biệt và bạn có thể tự mình hoàn tất công đoạn này Sau khi cài đặt xong máy tính sẽ khởi động chương trình Android Studio để bạn có thể bắt đầu phát triển ứng dụng đầu tiên

Trang 13

Hình 3.1: Cài đặt Android Studio trên Windows

Hệ Điều Hành Mac

Tương tự như Windows việc cài đặt Android Studio trên Mac OS X cũng khá đơn giản Sau khi tải về tập tin DMG dùng để cài đặt Android Studio trên Mac thì chúng ta sẽ nhấp đúp vào file này Ở cửa sổ bật ra bạn cần nhấp chuột và kéoAndroid Studio vào thư mục Applications Sau đó click đúp vào biểu tượng Android Studio để tiến hành cài đặt Quá trình cài đặt không có gì đặc biệt và bạn có thể tự mình hoàn tất công đoạn này

Trang 14

Hình 3.2: Cài đặt Android Studio trên Mac

Hệ Điều Hành Linux

Hình 3.3: Cài đặt Android Studio trên Linux

Để cài đặt Android Studio trên Linux thì sau khi tải tập tin zipvề máy bạn thực hiện các bước sau:

Trang 15

 Bước 1: Giải nén tập tin tải về sử dụng chương trình bằng cách nhấp đúp lên tập tinh này Chương trình Archive Manager có sẵn trên Ubuntu sẽ được khởi động để hỗ trợ bạn thực hiện việc giải nén.

 Bước 2: Chép thư mục vừa được giải nén vào bên trong thư

mục /usr/local hoặc /opt

 Bước 3: Mở cửa sổ dòng lệnh terminal (sử dụng tổ hợp phím

tắt Ctrl Alt T + + )

 Bước 4: Di vào bên trong thư mục android-studio/bin của tập tin vừa được giải nén (sau bước 3 ở trên thì thư mục này bây giờ sẽ nằm bên trong /usr/local hoặc /opt)

 Bước 5: Chạy tập tin studio.sh trong thư mục bin trên bằng cách nhập têntập tin này và gõ Enter

Sau bước 5, máy tính sẽ khởi động chương trình cài đặt Android Studio Setup

Wizard và bạn có thể dễ dàng thực hiện các công đoạn còn lại để cài Android

Studio

Sau khi cài đặt xong Android Studio thì đối với hệ điều hành Linux 64-bit thì bạn cần tiến hành thêm một bước sau để cài đặt bổ sung một số bộ thư viện cần thiết cho Android Studio:

Với các máy tính chạy phiên bản 64-bit của Ubuntu thì chúng ta sẽ cần chạy câulệnh sau:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++ :i386 lib32z1 6 libbz2- 1.0 :i386

Với các máy tính chạy phiên bản 64-bit của Fedora thì chúng ta sẽ cần chạy câu lệnh sau: sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686

Trang 16

3.1.2 Ngôn Ngữ Sử Dụng :Java

1 Java là gì?

Java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vào năm 1995, là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình hướng đối tượng

Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ở Indonesia - hòn đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổbiến của các kỹ sư Sun Ban đầu Ngôn ngữ này được đặt tên là "Oak có nghĩa" (

là "Cây sồi" - 1991), nhưng các luật sư của Sun xác định rằng tên đó đã được

đăng ký nhãn hiệu nên các nhà phát triển đã phải thay thế bằng một tên mới

-và cũng vì lý do trên mà cái tên Java đã ra đời -và trở thành tên gọi chính thức của Ngôn ngữ này - Ngôn ngữ Lập trình Java

2 Ứng dụng của Java

Ngày nay Java được sử dụng với các mục đích sau:

 Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụng cho doanh nghiệp với quy mô lớn

 Tạo các trang web có nội dung động (web applet), nâng cao chức năng của server

 Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet, viễn thông, giải trí,

3 Những đặc điểm cơ bản của Java

Tiêu chí hàng đầu của Ngôn ngữ Lập trình Java là "Write Once, Run

Anywhere" (Viết một lần, chạy mọi nơi), nghĩa là Java cho phép chúng ta viết code một lần và thực thi được trên các hệ điều hành khác nhau Ví dụ, chúng ta viết code trên Hệ điều hành Windows và nó có thể thực thi được trên các Hệ điều hành Linux và Mac OS

Với đặc điểm nổi bật đó, Java có những đặc điểm cơ bản như sau:

 Đơn giản và quen thuộc: Vì Java kế thừa trực tiếp từ C/C++ nên nó có những đặc điểm của ngôn ngữ này, Java đơn giản vì mặc dù dựa trên cơ

sở C++ nhưng Sun đã cẩn thận lược bỏ các tính năng khó nhất của của C++ để làm cho ngôn ngữ này dễ sử dụng hơn

 Hướng đối tượng và quen thuộc

Mạnh mẽ (thể hiện ở cơ chế tự động thu gom rác - Garbage

Collection) và an toàn.

Kiến trúc trung lập, độc lập nền tảng và có tính khả chuyển (Portability).

 Hiệu suất cao

 Máy ảo (biên dịch và thông dịch)

Ngày đăng: 06/02/2025, 16:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w