簡體   English   中英

如何在opencv python中將顏色更改為圖像的特定部分?

[英]How to change color to specific portion of an image in opencv python?

我有一個正面人的形象,其中:

1)我使用面部標志檢測來檢測下巴點。

2)添加一些特定值以降低其y坐標​​值。

3)找出圖像的寬度。

4)通過該點畫一條線。

現在,我要做的就是將顏色從黃線以下的圖像部分更改為白色,以便我只能將整個頭分開。 怎么做?

我到目前為止所完成的代碼:

import cv2
import numpy as np
import dlib

img1 = cv2.imread('Test.jpg')

#Facial Landmark Detection
predictor_path = "C:\\Users\\G7K4\\Desktop\\BackEnd_New\\01 HeadSwap\\shape_predictor_68_face_landmarks.dat"
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path) 

img2 = detector(img1)

for k, d in enumerate(img2):
    shape = predictor(img1, d)

vec = np.empty([68, 2], dtype = int)
for b in range(68):
    vec[b][0] = shape.part(b).x
    vec[b][1] = shape.part(b).y

SampleHead_chinPoint = (vec[8,0], vec[8,1])
print(SampleHead_chinPoint )
a = SampleHead_chinPoint[0]
b = SampleHead_chinPoint[1]
c = b + 25
cv2.circle(img1, (a, c), 5, (0,0,255), -1)
cv2.imshow("Pointed", img1)
cv2.waitKey(0)

width = img1.shape[1]
cv2.line(img1, (0,c), (width, c), (0, 255, 255), 2)
cv2.imshow("Lined", img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

圖片:

原始圖片:

test.jpg放在

輸出1:

尖

輸出2:

夾

假設你有問題。

import cv2

img = cv2.imread("2.png")

chin_point = (370,230)

img[chin_point[0]:,:] = [255,255,255]

cv2.imshow("img", img)    

cv2.waitKey()
cv2.destroyAllWindows() 

在此處輸入圖片說明

暫無
暫無

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

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