You are here
Home > Lập Trình > Tự Học Matlab > Matlab Nâng Cao > Xử Lý Ảnh Matlab > Xử Lý Ảnh Matlab – Đọc Và Hiện Thị Ảnh Trên Phần Mền Matlab

Xử Lý Ảnh Matlab – Đọc Và Hiện Thị Ảnh Trên Phần Mền Matlab

doc va hien thi anh trong matlab

Hướng dẫn đọc và hiện thị hình ản trong Matlab

Trong bài viết trước chúng ta đã làm quen về ảnh số như là có những loại ảnh nào, cấu tạo của một hình ảnh cũng như ta đã học cách đọc và hiện thị ảnh trên cửa sổ Command Window của phần mền Matlab rồi.

doc va hien thi anh trong matlab
doc va hien thi anh trong matlab

Trong bài học hôm nay tôi và bạn cùng tìm hiểu một số câu lệnh giúp bạn có thể thao tác được với bức ảnh của mình. Cũng như ta sẽ làm một ví dụ để bạn không có cảm giác nhàn chán cứng như việc học của chúng ta trở nên hiệu quả hơn.

1. Một số lệnh cơ bản xử lý ảnh

a. Tạo 1 dialog box

uigetfile

Bạn nhận được một kết quả như hình dưới. Nó cho phép bạn lựa chọn các file nào đó bạn muốn.

uigetfile dialog box
uigetfile dialog box

Nếu bạn muốn cho người dùng chỉ chọn được các file có đuôi nào đó thì bạn có thể thực hiện câu sau:

[filename, pathname] = uigetfile( ...
             {'*.m;*.fig;*.mat;*.mdl', 'All MATLAB Files (*.m, *.fig, *.mat, *.mdl)'; ...
            '*.*', 'All Files (*.*)'}, ...
            'vutienblog.com')

Trong đó:

  • filename: Là giá trị trả về bạn nhận được khi bạn click vào file nào đó (Trả về tên file)
  • pathname: Trả về đường dẫn tới file đó
  • ‘*.m;*.fig;*.mat;*.mdl’: Là các định dạng có đuôi bạn quy định sẵ mà bạn cho phép người dùng chọn
  • vutienblog.com: Là tên gợi ý cho người dùng chọn file. Bạn có thể viết tên gì cũng được. (Nó sẽ hiện thị trên cùng bên trái của dialog box)
uigetfile dialog box matlab
uigetfile dialog box matlab

b. Nối 2 chuỗi lại với nhau

result = strcat(str1, str2);

Trong đó:

  • strcat(): Nối chuỗi
  • str1: Chuỗi 1
  • str2: Chuỗi 2
  • result: Kết quả trả về của 2 chuỗi đó được nối với nhau

Ví dụ như sau:

>> result = strcat('VuTienIT', '.Com');
>> result

result =

vutienblog.com

c. Hiện thị thông tin bức ảnh

thongTinAnh = imfinfo(duongDanTuyetDoiAnh);

Trong đó:

  • imfinfo: Đọc thông tin hình ảnh
  • duongDanTuyetDoiAnh: Là đường dẫn tới hình ảnh đó
imfinfo matlab
imfinfo matlab

Để có thể truy cập được vào thuộc tính nào đó của bức ảnh. Ví dụ bạn muốn lấy giá trị Width của bức ảnh chẳng hạn. Thì bạn chỉ cần gõ lệnh sau.

thongTinAnh.Width

Trong đó:

  • thongTinAnh: Là giá trị trả về của biến imfinfo();
  • Width: Là thuộc tính của bức ảnh bạn muốn lấy
>> thongTinAnh.Width

ans =

   600

Bạn có thể gán giá trị trả về vào một biến nào đó sau đó dùng biến đó làm một nhiệm vụ mà bạn mong muốn.

Như bạn thấy thì hàm imfinfo sẽ cho bạn biết được rất nhiều thông tin của bức ảnh đó như là Ngày tháng bức ảnh sửa lần cuối, kích thước, định dạng, … Bạn có thể tìm hiểu hàm này qua lệnh dưới đây để biết thông tin chi tiết cũng như giá trị trả về của hàm này

help imfinfo

2. Bài tập mở một hình ảnh nên trong Gui

Tôi và bạn cùng làm một ví dụ nhỏ dưới đây để bạn có thể hiểu rõ hơn các vấn đề mà ta đa học bên trên.

Như hình dưới thì tôi có tạo ra Push Button có string là Mo File Anh. Và một axes để hiện thị hình ảnh. Chắc hẳn thì giao diện này cũng không quá khó khăn đối với bạn đúng không? Cho nên tôi xin phép không hướng dẫn cách tạo giao diện để không làm mất thời gian của bạn.

hien thi anh nen gui matlab
hien thi anh nen gui matlab

Ok bây giờ bạn hãy mở Function của Push Button và tiến hành gõ đoạn code dưới đây.

[tenAnh, duongDanAnh] = uigetfile( ...
                       {'*.jpg;*.png;*.bmp;*.jpeg;*.tif', 'All MATLAB Files (*.jpg, *.png, *.bmp, *.jpeg, *.tif)'; ...
                       '*.*', 'All Files (*.*)'}, ...
                       'Chon Hinh Anh De Mo');

full = strcat(duongDanAnh, tenAnh);
hinhAnh = imread(full);
imshow(hinhAnh);

Trong đó:

  • imread: Đọc Ảnh
  • imshow: Hiện thị ảnh. Nếu bạn không biết 2 câu lệnh này thì bạn hãy quay lại xem bài 1 tôi đã nói rồi.
  • Ở đây vì ta chỉ cho người dùng lựa chọn hình ảnh nên ta để các định dạng có đuôi là jpg, png, bmp, jpeg, tif. Bạn nhớ phải để ký tự *. ở đằng trước của mỗi định dạng. Như vậy Matlab mới hiểu được.
  • tenAnh, duongDanAnh: Là 2 biến được trả về khi sử dụng hàm uigetfile. Sau đó ta nối 2 biến này lại với nhau ta được 1 đường dẫn hoàn chỉnh tới file đó.

Bạn hãy chạy thử trương trình nên xem kết quả như thế nào nhé.

doc va hien thi anh trong matlab
doc va hien thi anh trong matlab

Tổng Kết:

Như vậy tôi và bạn đã cùng nhau học cách hiện thị bức ảnh nào đó nên Gui và học thêm được một số câu lệnh hỗ trợ việc lấy thông tin ảnh cũng như đọc hiện thị ảnh.  Trong bài viết sau chúng ta cùng nhau tìm hiểu thêm một số câu lệnh để sử lý ảnh trong Matlab. Hi vọng bài viết này sẽ giúp ích cho bạn! Chúc bạn thành công!

 

5 1 bỏ phiếu
Đánh giá bài viết

Thủ Thuật Windows

Nếu như trong quá trình bạn tải file Active về mà bị thông báo là "tệp chứa virus" và bị xóa thì hãy làm theo các bước sau trước khi tải về nhé:

Bước 1: Tắt Windows Defender (Win 10), bạn hãy làm theo các bước này để tắt Defender tạm thời nhé, sau khi Active xong, bạn có thể bật lại:
1. Mở ứng dụng Settings.
2. Trên cửa sổ Settings, bạn tìm và click chọn Update & security.
3. Tiếp theo click chọn Windows Defender.
4. Chuyển trạng thái tùy chọn Real-time protection sang OFF.

Bước 2: Ngoài ra, Nếu trong quá trình tải về mà bạn dùng trình duyệt Chrome hay Cốc Cốc thì sau khi file tải xong không được bấm "Hủy" mà bạn nên bấm tổ hợp phím “Ctrl + J” để vào phần quản trị download, tìm đến file mà bạn tải rồi click vào ô “Khôi phục tệp…” nhé.

Có một số trường hợp file Active tải về mặc định bị xóa, nếu gặp trường hợp này bạn cần chắc chắn rằng Windows Defender hay phần mềm diệt virus trên máy đã được tắt. Sau đó bạn bấm “Ctrl +J“, tại link tải active mà bạn vừa tải về đã bị xóa, bạn hãy click vào đó để trình duyệt tải lại một lần nữa và lần này là sẽ thành công.

BQT: VuTienBlog

Subscribe
Thông báo
guest
1 Comment
Phản hồi nội tuyến
Xem tất cả các ý kiến
Đức
Đức
5 year ago

Chào bạn ! Bạn cho mình hỏi nếu mình muốn mở 2 hình ảnh dùng 2 axes nhưng ảnh nó luôn hiển thị ở axes 2 nhưng mình muốn nó hiển thị ở axes 1 thì làm thế nào nhỉ ?

Top
11
0
Bác có thắc mắc? Nhấn vào đây để bình luận!x
()
x