簡體   English   中英

無法獲得正確的輪廓

[英]Unable to get a Proper contour

我試圖區分矩形,梯形和半圓形。 所以我要做的是在形狀周圍繪制輪廓,然后旋轉矩形。 之后,我找到輪廓和旋轉矩形的面積並取它們的比例。 使用該比率,我將確定形狀,因為前面提到的三種形狀會有所不同。

(如果有人擁有更強大的方法來區分這三種方法,將不勝感激。)

出現問題。 我無法在圖像周圍繪制適當的輪廓。 這是輸入和輸出圖像:

輸入圖像

輸出圖像

這是我的代碼

import cv2
import numpy as np

img = cv2.imread('h4.JPG')
cv2.imshow('Input',img)
#img = cv2.resize(img, None, fx=0.2,fy=0.2)
img = cv2.GaussianBlur(img, (11,11), 0)
img = cv2.fastNlMeansDenoisingColored(img,None,10,10,7,21)
im = img.copy()

imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,0,255,cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

max = 0

for c in contours:
    area = cv2.contourArea(c)
    print area
    if(np.any(max <= area)):
        max = c


A, B, C = cv2.minAreaRect(c)
rotrect = cv2.minAreaRect(c)
box = cv2.cv.BoxPoints(rotrect)
box = np.int0(box)
cv2.drawContours(im, contours, 0, (0,255,0), 2)
cv2.drawContours(im, [box], 0, (0,0,255), 2)

areaS = cv2.contourArea(contours[0])
areaR = B[0]*B[1]

Ratio = areaS/areaR

print "Shape Area: ",areaS
print "Shape Rect: ",areaR
print "Ratio: ",Ratio

cv2.imshow('Output',im)

if cv2.waitKey() and 0xff == 27:
    cv2.destroyAllWindows()

提前致謝。

我已經在評論部分中發布了代碼以及Miki提供的解決方案。

碼:

im = cv2.imread('Figure.jpg', 1)
gray_img = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
im1 = im.copy()                       #---copy of the original image----

ret, thresh = cv2.threshold(gray_img, 127, 255, 0)   
blur_img = cv2.GaussianBlur(thresh, (11,11), 0)

#---Finding and drawing contours---
_, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(im1, contours, -1, (0, 255, 0), 3)

#----Drawing a rotated rectangle----
cnt = contours
rect = cv2.minAreaRect(cnt[0])  #---I used cnt[0] since there is only one contour, if there are more you can assign this within a for loop----
box = cv2.boxPoints(rect)
box = np.int0(box)
im = cv2.drawContours(im1, [box], 0, (0,0,255), 2)

cv2.imshow("Final_Image.jpg", im1)

結果:

在此處輸入圖片說明

暫無
暫無

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

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