嘿,伙計們,我正在使用 numpy 和 opencv 并希望得到一個由它的輪廓裁剪的影像。這是一個例子,我想通過邊緣裁剪什么圖片,

我希望黃線(矩形)被python裁剪,

import numpy as np
import cv2
from PIL import Image
image = cv2.imread('4.png')
result = image.copy()
image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower = np.array([103, 131, 70])
upper = np.array([179, 234, 255])
mask = cv2.inRange(image, lower, upper)
result = cv2.bitwise_and(result, result, mask=mask)
print(image.shape)
cv2.imshow('mask', mask)
cv2.imshow('result', result)
cv2.waitKey()
uj5u.com熱心網友回復:
您可以選擇 LAB 色彩空間。
現在為什么要使用 LAB 顏色空間而不是 HSV?
- 通過分析色度通道更容易分割您選擇的顏色。
- 無需手動修復范圍(與 HSV 顏色空間不同)。大津門檻會有所幫助。
什么是 LAB 色彩空間?
- L-channel : 表示影像中的亮度值
- A通道:表示紅色和綠色之間的顏色變化
- B通道:表示藍色和黃色之間的顏色變化

th = cv2.threshold(a_component,127,255,cv2.THRESH_BINARY cv2.THRESH_OTSU)[1]
contours, hierarchy = cv2.findContours(th, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
c = max(contours, key = cv2.contourArea)
black = np.zeros((img.shape[0], img.shape[1]), np.uint8)
mask = cv2.drawContours(black,[c],0,255, -1)

result = cv2.bitwise_and(result, result, mask=mask)

希望這是你所期待的結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/466503.html
標籤:Python 麻木的 opencv 图像处理 物体检测
