Hình 4 .1 Chậu chứa cá giống
Hình 4.4 Giao diện đồ họa chương trình nhận dạng và đếm cá
Chuyển ảnh màu RGB thành ảnh mức xám
Tác giả đã sử dụng hàm rgb2gray của Matlab để thực hiện được tác vụ này.
Dữ liệu vào của hàm là ảnh màu RGB, dữ liệu ra của hàm là ảnh mức xám. Quan sát ảnh xám sau khi sử dụng hàm rgb2gray ta thấy đối tượng cá có màu đen hơn nền xung quanh. Ảnh sau khi chuyển thành ảnh mức xám
Đảo pixel ảnh xám
Do ở bước xác định trọng tâm của ảnh ta cần hiển thị điểm trọng tâm nên nếu đối tượng cá có màu đen thì sẽ khơng quan sát được điểm trọng tâm. Vì vậy, tác giả đã thực hiện đảo các pixel 0 thành pixel 1, đảo pixel 1 thành pixel 0 (hay đảo đen thành trắng, trắng thành đen) bằng hàm imcomplement của Matlab. Dữ liệu vào
của hàm này có thể là ảnh nhị phân, ảnh xám hoặc ảnh màu RGB. Kết quả trong đề tài này, tác giả chọn dữ liệu vào của hàm imcomplement là ảnh xám, dữ liệu ra của
hàm cũng là ảnh xám nhưng đối tượng cá đã được chuyển sang màu trắng cịn nền thì màu tối.
Lọc nhiễu cho ảnh mức xám
Tác giả đã sử dụng hàm medfilt2 của Matlab để thực hiện được tác vụ này. Dữ liệu vào của hàm này là ảnh mức xám chưa được lọc nhiễu, dữ liệu ra của hàm cũng là ảnh mức xám nhưng đã được lọc nhiễu.
Tăng độ tương phản cho ảnh mức xám
Tác giả đã sử dụng hàm imadjust của Matlab để thực hiện được tác vụ này. Dữ liệu vào của hàm này là ảnh mức xám đã được lọc nhiễu, dữ liệu ra của hàm cũng là ảnh mức xám nhưng có độ tương phản giữa hai màu đen và trắng rõ nét hơn.
Phân đoạn ảnh
Chuyển ảnh mức xám thành ảnh nhị phân đen trắng.
Để thực hiện được tác vụ này, tác giả đã sử dụng 2 hàm graythresh và
im2bw của Matlab.
Hàm graythresh dùng để xác định ngưỡng giá trị mức xám của ảnh mức xám đã được làm tăng độ tương phản. Dữ liệu vào của hàm này là ảnh mức xám, dữ liệu ra của hàm là ngưỡng giá trị mức xám của ảnh.
Hàm im2bw dùng để chuyển ảnh mức xám thành ảnh nhị phân đen
trắng. Những điểm ảnh nào trong ảnh có giá trị mức xám lớn hơn ngưỡng giá trị mức xám thì thành màu đen, ngược lại thì thành màu trắng. Lúc này ảnh là một ma trận điểm, mỗi điểm có giá trị hoặc là 0 hoặc là 1.
Loại bỏ các vùng ảnh nhỏ có ít số pixel
Để thực hiện được tác vụ này, tác giả đã sử dụng hàm bwareaopen của Matlab. Do ảnh chụp thực tế có rất nhiều tạp chất nhỏ li ti mà ta không thể xây dựng chúng thành ảnh tạp mẫu để huấn luyện cho mạng nơ-ron. Vì vậy cần phải loại bỏ các tạp chất nhỏ này.
Dữ liệu vào của hàm bwareaopen này là ảnh nhị phân, dữ liệu ra của hàm