HSV空间的优点很多,可以百度,最大的优点就是光线变化的时候也能很好的区分颜色
以小丑鱼的分割为例 下面是原图 (百度图片上找的)。
要把这条鱼从图中割出来,明显可以看到这条鱼是黄色+白色
下面先割黄色
先读出来,img=cv2.imread(image)
然后转到HSV空间 img=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
再用cv2.inRange()函数生成掩膜 (mask),掩膜的意思,作用看 https://blog.csdn.net/bitcarmanlee/article/details/79132017
inRange()函数百度
各颜色在HSV空间对应的值看https://blog.csdn.net/taily_duan/article/details/51506776
再用result=cv2.bitwise_and(img,img,mask=mask) 生成结果
下面是结果
同样的办法可以割到白色,得到白色的结果
那怎么得到一条完整的鱼呢?那就在上面两步获得mask 过程中,将得到的mask 相加,再用cv2.bitwise_and()方法得到完整的鱼
结果不算完美,可以加一些预处理的办法,再HSV颜色上更精准点,肯定能得到一条更好更完整的鱼