Iは、矢印の束と、この OpenCVの - ハウツー検索輪郭(矢印)配向
ようなイメージを持っています。私は、画像上の大部分の矢印の向きが何であるかを知りたいと思います。
私はOpenCVのいくつかの読み取りを行なったし、私はやや正確な結果を得るために管理私のスクリプトではfolowingコード
import numpy as np
import cv2
import math
img = cv2.imread('sample7.png')
height, width, channels = img.shape
img = cv2.resize(img, (width*8, height*8))
img = cv2.medianBlur(img,5)
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,th1 = cv2.threshold(imgray,100,255,cv2.THRESH_BINARY)
edged=cv2.Canny(th1,127,200)
im2,contours,h = cv2.findContours(edged.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
(img2,cnts, _) = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
screenCnt=None
flag_t=False
flag_s=False
kot=[]
for c in cnts:
approx = cv2.approxPolyDP(c, 0.01*cv2.arcLength(c,True), True)
area = cv2.contourArea(c)
#print area
if int(len(approx)) > 8 and area > 600 and area < 1100:
anglelist=[]
cv2.drawContours(img, [approx], -1, (0, 255, 255), 1)
(x,y),(MA,ma),angle = cv2.fitEllipse(c)
print round(angle,-1)
kot.append(round(angle,-1))
d = {}
for elm in kot:
d[elm] = d.get(elm, 0) + 1
counts = [(j,i) for i,j in d.items()]
count, max_elm = max(counts)
print 'most common:'
print max_elm
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
を思い付きます。問題は、矢印が上下または左右に向いている場合、Imが同じ結果を得ていることです。矢印が左か右を指しているかどうかを知るには?下の写真の両方のケースでは、私は同じ結果を90度前後で得る。つもりである
これは明らかにコンピュータで生成されたイメージです。画像を生成したコードからより多くの情報を得ることができれば、はるか先に進むでしょう。おそらく、追加のメタデータをファイルに添付する可能性があります。しかし、はい、OpenCVには多くの画像処理があります。画像を処理することがあなたの唯一の選択肢であれば、これは非常に良い場所です。 –