Cách xử lý ảnh và đếm số lượng với MATLAB

Việc xử lý ảnh và đếm số lượng với MATLAB được thực hiện bằng cách thực thi các lệnh dưới đây trong cửa sổ lệnh của MATLAB.

Cách xử lý ảnh và đếm số lượng với MATLAB

Nếu máy tính của bạn chưa có Matlab, hãy tải về và cài đặt Matlab phiên bản mới nhất tại đây : Download Matlab

Bước 1: Đọc ảnh

Một hình ảnh sẽ tương phản đáng kể với nền background của nó để xác định các đối tượng. Hàm imread đọc ảnh từ một vị trí nhất định và lưu ảnh trong ma trận img1. Hàm imshow sẽ hiển thị ảnh.

img1=imread('Lines.jpg');

imshow(img1)

Bước 2: Chuyển đổi màu ảnh sang màu xám

Bước này sẽ xóa các màu sắc trong ảnh đi và để xác định các đối tượng dễ dàng hơn. Hàm rgb2gray chuyển đổi màu sắc trong ảnh sang màu xám và lưu trữ trong ma trận img2.

img1=rgb2gray(img1);

imshow(img1)

Bước 3: Ngưỡng hình ảnh

Ngưỡng hình ảnh bằng cách chuyển đổi ảnh màu xám sang ảnh chỉ chứa 2 màu. Hàm im2bw() gán màu đen cho tất cả điểm ảnh có độ sáng cao hơn mức ngưỡng, và còn lại là màu trắng. Hàm graythresh () tính toán khoảng ngưỡng của hình ảnh.

img2=im2bw(img1,graythresh(img1));

imshow(img2)

Bước 4: Phần bổ sung hình ảnh

Sử dụng toán tử ~ để bổ sung cho hình ảnh. Bằng cách này để chuyển đổi các mảng trắng thành màu đen và ngược lại. Nếu muốn làm nổi bật đối tượng bằng màu trắng, bạn có thể thực hiện bước này.

img2=~img2;

imshow(img2)

Bước 5: Tìm ranh giới của các đối tượng

Bước này để tìm ranh giới của mỗi đối tượng mà Matlab tìm thấy và lưu trữ trong B. Hàm text sẽ in số lượng các đối tượng mà hàm bwboundaries tìm thấy.

B = bwboundaries(img2);

imshow(img2)

text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))

hold on

Bước 6: Vẽ đường ranh giới

Bước xử lý ảnh và đếm số lượng với MATLAB này khá thú vị, trong đó bạn có thể đánh dấu ranh giới các đối tượng được xác định bởi hàm bwboundaries. Nếu cảm thấy phức tạp quá, bạn có thể bỏ qua bước này:

for k = 1:length(B)

boundary = B{k};

plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)

end

Bước 7: Code

img1=imread('Lines.jpg');

imshow(img1)

img1=rgb2gray(img1);

imshow(img1)

img2=im2bw(img1,graythresh(img1));

imshow(img2)

img2=~img2;

imshow(img2)

B = bwboundaries(img2);

imshow(img2)

text(10,10,strcat('\color{green}Objects Found:',num2str(length(B))))

hold on

for k = 1:length(B)

boundary = B{k};

plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 0.2)

end

Như vậy trong bài viết trên Taimienphi.vn vừa hướng dẫn bạn cách xử lý ảnh và đếm số lượng với MATLAB. Để cải thiện kỹ năng làm việc với Matlab, nhanh chóng thuần thục chương trình này, bạn có thể tải về giáo trình tự học Matlab và nhanh chóng nâng cao kỹ năng sử dụng Matlab nhé. Nếu có thắc mắc hoặc chỗ nào chưa hiểu bạn có thể để lại câu hỏi của mình trong phần bình luận bên dưới bài viết nhé!

Matlab là viết tắt của “MATrix LABoratory”, là một bộ phần mềm toán học và cũng là ngôn ngữ lập trình thế hệ thứ 4 của Mathworks. Matlab giải quyết các vấn đề về mặt kỹ thuật kỹ thuật, lập trình, tính toán số nhanh hơn nhiều so với các ngôn ngữ lập trình truyền thống, như C, C ++ và Fortran. Trong bài viết này Taimienphi.vn sẽ hướng dẫn bạn cách xử lý ảnh và đếm số lượng với Matlab.
MATLAB là gì, hướng dẫn đầy đủ về MATLAB
Cách cài đặt MATLAB trên Mac OS X
Các kiểu số học trong MATLAB
Các lệnh trong MATLAB
Cài đặt và sử dụng Matlab
Cách viết hàm trong MATLAB

ĐỌC NHIỀU