逻辑步骤
- 获取图片转换为HSV色域空间(符合人类视觉逻辑,分析更准确)
- 定义肉色的颜色范围,数据如下:(使用现写的Python脚本读取涂抹图片HSV值)
lower_meat = np.array([1, 130, 100]) # 下限 upper_meat = np.array([19, 240, 248]) # 上限
- 创建肉串掩膜(就是把肉的色域范围的图片扣下来,类似抠图)
- 使用形态学操作去除噪声(很有用,对图片开运算和闭运算,去除内外部分细节和噪声)
- 然后去找轮廓,忽略过小轮廓
- 对单个轮廓判断熟度,数据如下:(这个也用脚本去涂抹读取)
# h_values: (1, 4) s_values: (162, 187) v_values: (126, 142) # 全生 # h_values: (3, 5) s_values: (179, 218) v_values: (124, 159) # 微生 # h_values: (3, 5) s_values: (160, 215) v_values: (126, 184) # 微生 # h_values: (4, 7) s_values: (150, 176) v_values: (158, 182) # 微熟 # h_values: (5, 9) s_values: (137, 169) v_values: (139, 156) # 微熟 # h_values: (8, 10) s_values: (142, 160) v_values: (136, 158) # 全熟
-
最后展示结果:
![](https://i-blog.csdnimg.cn/direct/7b856d58b87e48aeb2ce81a469962814.png)
代码,亲手敲的,不白嫖
import cv2
import numpy as np
from skimag