Ý tưởng app đếm sắt trên xe khi sắt cây về công trường cho kỹ sư đỡ cực
Hôm qua (21/05/2020) em ra công trường thương mấy anh/em kỹ sư quá. Nắng vỡ đầu đếm d32 đỡ nhục đếm thép d10 nhục luôn!
Mục đích: thấy anh/em đếm sắt trên xe khi sắt cây về công trường cực quá! làm app đếm thép giúp anh em đỡ cực.
Đọc trên mạng có bài viết về đếm phần tử trên một bức ảnh. Nếu làm cái app trên điện thoại, chụp đuôi xe phát là ra số thanh thì quá tốt cho anh/em kỹ sư và bên bán vật liệu thép (y).
Cách xử lý ảnh và đếm số lượng với MATLAB
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. Bài viết này hướng dẫn bạn cách xử lý ảnh và đếm số lượng với Matlab.
Vector trong MATLAB
Cách thêm ký hiệu toán học trong 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
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: Viết mã 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
Bài viết tham khảo từ trang taimienphi.vn, đây là ý tưởng hay của 1 kỹ sư xây dựng, nhu cầu khó khăn từ thực tế là có thật, công trình nào cũng sử dụng thép, người kinh doanh, bốc vác thép cũng nhiều.
Các bạn có thể nghiên cứu đề tài khoa học, đồ án tốt nghiệp hoặc luận văn thạc sĩ... cũng không hẳn cứ phải là Matlab, nhưng hướng đi và giải pháp nói trên cũng giúp bạn đọc quan tâm tham khảo rất tốt.
Hôm qua (21/05/2020) em ra công trường thương mấy anh/em kỹ sư quá. Nắng vỡ đầu đếm d32 đỡ nhục đếm thép d10 nhục luôn!
Mục đích: thấy anh/em đếm sắt trên xe khi sắt cây về công trường cực quá! làm app đếm thép giúp anh em đỡ cực.
Đọc trên mạng có bài viết về đếm phần tử trên một bức ảnh. Nếu làm cái app trên điện thoại, chụp đuôi xe phát là ra số thanh thì quá tốt cho anh/em kỹ sư và bên bán vật liệu thép (y).
Cách xử lý ảnh và đếm số lượng với MATLAB
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. Bài viết này hướng dẫn bạn cách xử lý ảnh và đếm số lượng với Matlab.
Vector trong MATLAB
Cách thêm ký hiệu toán học trong 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
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: Viết mã 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
Bài viết tham khảo từ trang taimienphi.vn, đây là ý tưởng hay của 1 kỹ sư xây dựng, nhu cầu khó khăn từ thực tế là có thật, công trình nào cũng sử dụng thép, người kinh doanh, bốc vác thép cũng nhiều.
Các bạn có thể nghiên cứu đề tài khoa học, đồ án tốt nghiệp hoặc luận văn thạc sĩ... cũng không hẳn cứ phải là Matlab, nhưng hướng đi và giải pháp nói trên cũng giúp bạn đọc quan tâm tham khảo rất tốt.