用GrabCut进行前景检测(对书中代码进行改进)Python
生活随笔
收集整理的這篇文章主要介紹了
用GrabCut进行前景检测(对书中代码进行改进)Python
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
GrabCut
該算法,在opencv中很容易就可以使用。
通過對于一開始取定的矩陣來做來模擬。
(這個我們可以通過調整這個點的以及對應的矩陣大小來調整效果)
下面就是算法提取出來的圖像,以及原圖
下面這就是原圖(就是代碼的輸入圖片)
代碼
import cv2 import numpy as np from matplotlib import pyplot as pltimg = cv2.imread('3.jpg') OLD_IMG = img.copy() mask = np.zeros(img.shape[:2], np.uint8)SIZE = (1, 65) bgdModle = np.zeros(SIZE, np.float64) fgdModle = np.zeros(SIZE, np.float64)rect = (60, 25, 500, 500)cv2.grabCut(img, mask, rect, bgdModle, fgdModle, 5, cv2.GC_INIT_WITH_RECT)mask2 = np.where((mask == 2) | (mask == 0), 0, 1).astype('uint8') img *= mask2[:, :, np.newaxis]plt.subplot(121), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.title("grabcut"), plt.xticks([]), plt.yticks([])plt.subplot(122), plt.imshow(cv2.cvtColor(OLD_IMG, cv2.COLOR_BGR2RGB)) plt.title("original"), plt.xticks([]), plt.yticks([])plt.savefig('GrabCut.png') plt.show() 《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的用GrabCut进行前景检测(对书中代码进行改进)Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像阈值处理cv2.threshold(
- 下一篇: (特征检测)检测角点opencv--py