![d44f094f91b474fad443b1bca9ba91ed.png](https://i-blog.csdnimg.cn/blog_migrate/bcfe87a42595a1bf96c8a53aa4e3c2c7.jpeg)
在 k-means 与图像分割 - Computerphile 这个视频中,Mike 博士讲了k-means算法以及图像分割的一些内容,视频里使用的 MATLAB 代码如下
% This script is the one mentioned during the Computerphile Image
一个偶然的机会我突然有个证件照换背景的需求,网上随便搜了搜证件照替换却要微信打赏,正好手头又没有Photoshop这些工具,Windows自带的画图油漆桶效果又有点看不过去,想到k-means可以做图像分割,所以用OpenCV随便写了一个,代码如下
// KMeans Segmentation for image
背景替换的效果与k的选择有关,3或者5是比较推荐的值
已知的问题:
- 因为替换颜色时使用的是简单的循环扫描,当背景色不够纯时就会导致替换效果不够好
- 可能是由于红色的色度问题,红底的图片在背景替换后人会带一圈粉红外边
- 当输入图片中最外有边框时会导致处理失败
使用 k-means 来做图像的量化以及分割是以前从来没有了解过的,这次也算长了见识