は、私は簡単なパイプラインを得ることができただけでいくつかの大まかな結果である: コードかなり自明すぎる
import cv2
import numpy as np
def nothing(x):
pass
cv2.namedWindow('image')
cv2.createTrackbar('high','image',0,255,nothing)
cv2.createTrackbar('low','image',0,255,nothing)
cv2.namedWindow('Edges')
while(1):
image = cv2.imread("PATH TO IMAGE HERE")
imgray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
high = cv2.getTrackbarPos('high', 'image')
low = cv2.getTrackbarPos('low', 'image')
edges = cv2.Canny(imgray, low, high)
kernel = np.ones((8, 8), np.uint8)
closing = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel)
cv2.imshow('Edges', closing)
ret,thresh = cv2.threshold(closing,low,high,0)
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
largest_area = 0
largest_contour_index = 0
counter = 0
for i in contours:
area = cv2.contourArea(i)
if (area > largest_area):
largest_area = area
largest_contour_index = counter
counter = counter + 1
cv2.drawContours(image, contours, largest_contour_index, (0,255,0), 1)
cv2.imshow('image', image)
k = cv2.waitKey(1) & 0xFF
if k == 27:
break
パイプラインは次のとおりです。
- スムースイメージを読む
- グレースケールに変換
- 形態を適用する操作closing(8×8マスク)
- 輪郭
- 最大の輪郭(賢明なエリア)
を探すあなたは(http://docs.opencv.org/trunk/d5/d69/ [ノイズ除去]をしようとしましたtutorial_py_non_local_means.html)イメージ?これはあなたが持っている唯一のイメージですか、それともフレームのセットですか? – rbaleksandar
返事をありがとう。 2番目の画像はノイズのないバージョンでしょうか?私は当時の1つの画像で操作しています。 – PederBG
はい、そうです。さて、あなたは、画像を腐らせて膨張させることから始めることができます。 – rbaleksandar