Việc tính toán calo được thực hiện qua các bước như sau
- Thực hiện xử lý ảnh để lấy diện tích của đĩa và thực phẩm bằng pixel sau đó dựa vào kích thước thực tế của đĩa để tính kích thước thực của phần thực phẩm;
- Tính khối lượng thực tế của thực phẩm qua các thông số, thể tích của thực phẩm sau khi quy về hình dạng như hình cầu, hình trụ, hình khối chữ nhật;
- Từ khối lượng thực tế của thực phẩm suy ra lượng calo của thực phẩm dựa vào dữ liệu calo trên 100g thực phẩm đã được kiểm chứng từ Bộ Nông nghiệp Hoa Kỳ [18].
3.3.1. Xác định kích thước đĩa và kích thước thực phẩm
Để xác định kích thước của đĩa và kích thước thực phẩm từ ảnh chụp, luận văn sử dụng thư viện OpenCV thông qua xử lý ảnh.
Xác định kích thước đĩa được thể hiện qua các bước sau trong OpenCV trên Python
Bước 1 Đọc ảnh đầu vào Bước 2 Chuyển sang ảnh xám Bước 3 Khử nhiễu
Bước 4 Phân ngưỡng ảnh Bước 5 Vẽ các contour
Bước 6 Xác định biên dạng đĩa
Tiến trình xử lý biên dạng đĩa được mô tả như Hình 3.11
Hình 3.11. Quy trình thực hiện lấy biên dạng đĩa
Sau khi biên dạng đĩa được xác định quá trình xử lý ảnh được tiếp tục để xác định biên dạng thực phẩm. Hình ảnh đầu vào của bước tiếp theo là hình ảnh sau khi được xóa nền chỉ còn đĩa và thực phẩm.
Biên dạng thực phẩm được xác định qua các bước sau Bước 1 Đọc ảnh đầu
Bước 2 Chuyển ảnh sang hệ màu HSV (Hue, Saturation, Value) Bước 3 Tách rời thực phẩm
Bước 4 Chuyển sang ảnh xám Bước 5 Làm mịn ảnh
Bước 6 Phân ngưỡng ảnh Bước 7 Vẽ các contour
Bước 8 Xác định kích thước thực phẩm