ADD file via upload

main
pyhqos7bg 10 months ago
parent c5e72b3ab6
commit 5a66f58728

@ -0,0 +1,35 @@
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("./images/good.jpg")
#plt.imshow(img)
#plt.show()
#图像二值化
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,binary = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)
binary = cv2.bitwise_not(binary)
#获取指定形状的内核,第一个参数:内核的形状,内核的大小,锚点的位置(-1-1锚点位于中心单
se = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3),(-1,-1))
binary = cv2.morphologyEx(binary,cv2.MORPH_OPEN,se)
#plt.imshow(binary,cmap='gray')
#plt.show()
#图像轮廓提取
contours,hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
height,width = img.shape[:2]
template=[]
for c in range (len(contours)):
x,y,w,h = cv2.boundingRect(contours[c])
area = cv2.contourArea(contours[c])
if h<(height/2):
continue
if area<10:
continue
print(x,y,w,h)
img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),10,80,0)
ret = cv2.drawContours(img,contours,c,(0,255,0),10,8)
template = binary[y:y+h,x:x+w]
cv2.imwrite("./images/good_template.png", template)
plt.imshow(template,cmap="gray")
plt.show()
Loading…
Cancel
Save