簡體   English   中英

從具有輪廓的圖像中提取 ROI

[英]Extracting the ROI from image with contour

我有一堆這樣的圖片:

並想提取這部分

所以首先我使用掩蓋紅色部分,其次我使用閾值和輪廓。 但仍然不能 select 唯一的唇部。

import cv2 
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread("C:/Users/TBD/Desktop/TEZ GORSEL/098.JPG")

img_hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

lower_red = np.array([0,95,50])
upper_red = np.array([2,255,255])
mask0 = cv2.inRange(img_hsv, lower_red, upper_red)

lower_red = np.array([175,95,50])
upper_red = np.array([180,255,255])
mask1 = cv2.inRange(img_hsv, lower_red, upper_red)

mask = mask0+mask1
output_img = img.copy()
output_img[np.where(mask==0)] = 0

output_hsv = img_hsv.copy()
output_hsv[np.where(mask==0)] = 0
son = cv2.cvtColor(output_hsv, cv2.COLOR_HSV2BGR)
gray_son = cv2.cvtColor(son, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray_son, 10, 255, cv2.THRESH_BINARY)
contours,hierarchy = cv2.findContours(thresh, 1, 2)
for cnt in contours:
    x,y,w,h = cv2.boundingRect(cnt)
    if w>1960 and h>800:
        break
        
cropped = son[y:y+h, x:x+w]
cv2.imwrite('cropped.jpg', cropped)

在這些代碼之后我可以達到這個

但我仍然不能只提取嘴唇。 接下來我該怎么辦?

使用經典圖像處理作為您的解決方案,如果環境條件發生變化,這將改變結果。 使用面部地標,您可以獲得詳細信息並將其從圖像中裁剪為矩形。

其他解決方案可以是首先,您可以使用下面的檢測嘴,然后您可以應用您的解決方法或唇檢測。

import cv2
import numpy as np

mouth_cascade = cv2.CascadeClassifier('./cascade_files/haarcascade_mcs_mouth.xml')

if mouth_cascade.empty():
  raise IOError('Unable to load the mouth cascade classifier xml file')

cap = cv2.VideoCapture(0)
ds_factor = 0.5

while True:
    ret, frame = cap.read()
    frame = cv2.resize(frame, None, fx=ds_factor, fy=ds_factor, interpolation=cv2.INTER_AREA)
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    mouth_rects = mouth_cascade.detectMultiScale(gray, 1.7, 11)
    for (x,y,w,h) in mouth_rects:
        y = int(y - 0.15*h)
        cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 3)
        break

    cv2.imshow('Mouth Detector', frame)

    c = cv2.waitKey(1)
    if c == 27:
        break

cap.release()
cv2.destroyAllWindows()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM