乐趣区

关于python:python图像处理一行代码实现灰度图抠图

抠图是 ps 的最基本技能,利用 python 能够实现用一行代码实现灰度图抠图。
根底算法是确定图像二值化宰割阈值的大津法,将图像分成背景和前景两局部,最大化背景和前景之间的类间方差。具体实践局部能够搜寻大津法理解一下,代码局部只有在调用 threshold 的函数中,参数抉择 THRESH_OTSU 就能够调用大津法宰割

ret1, th1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)

全副代码如下,将原图、直方图和宰割后的图放在一起比拟展现

image = cv2.imread("pictures/dajin.jpg")
#先转化为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

plt.subplot(131), plt.imshow(image, "image")
plt.title("source image"), plt.xticks([]), plt.yticks([])

plt.subplot(132), plt.hist(image.ravel(), 256)
plt.title("Histogram")

ret1, th1 = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)  #办法抉择为 THRESH_OTSU

plt.subplot(133), plt.imshow(th1, "gray")
plt.title("OTSU,threshold is" + str(ret1)), plt.xticks([]), plt.yticks([])

plt.show()

抠图后果如下

然而这种算法对乐音和指标大小非常敏感,背景和前景像素靠近的时候宰割成果并不好

退出移动版