我想确定在python3脚本中使用OpenCV最能代表图像的2个色调值。 到目前为止,我已经能够访问色调通道并显示其色调直方图:
如你所见,基本上有两种不同色调的像素,米色和绿色。在
我已获得色调频道的访问权,如下所示:
hsv = cv.cvtColor( self.img, cv.COLOR_BGR2HSV )
hue,sat,val = cv.split(hsv)
在色调通道上操作以确定哪两个色调值最能代表图像的最有效方法是什么?在
编辑2就快到了,但仍需要帮助:
我拼凑了一些代码来使用OpenCV kmeans将图像转换为2种颜色:
仍然需要:
我已经解决了你在帖子中提到的一些事情。在
你不应该回到uint8。中心是一个大小(2,3)的数组,其中行是中心点(即色调),列是每个色调的BGR值。
我已经切换到scipykmeans2,而不是使用OpenCVs实现。在同一张图片上它似乎比OpenCV快3倍。在
你可能做不到比这段代码给你的时间更好的了。如果你的解决方案可行,你可以尝试缩小图像。这将导致更快的处理。在
另一个解决方案,如我所提到的,是转移到一个更快的语言,如C。我可以尝试一下,但我不确定你正在使用什么其他代码,它是否可以工作。如果你想走这条路,请告诉我。在
相关问题 更多 >
编程相关推荐