質問編集履歴
1
説明不足
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,14 @@
|
|
1
|
-
次の画像を入力画像として金属の部品をハフ変換で輪郭や溝のエッジを抽出したいと思っていますが、パラメータの調整が難しく上手くできません。どうしればよろしいでしょうか
|
1
|
+
~~次の画像を入力画像として金属の部品をハフ変換で輪郭や溝のエッジを抽出したいと思っていますが、パラメータの調整が難しく上手くできません。どうしればよろしいでしょうか~~
|
2
|
+
|
3
|
+
みなさま、間際らしい質問をしてしまい申し訳ございません。私はハフ変換で金属の部品の溝や輪郭の座標を求めたいと思っておりました。jbpb0様から意見で確率的ハフ変換を導入しても綺麗に溝や輪郭の検出ができせん。すいませんがどうすればよいか教えてくれないでしょうか。また入力画像、ハフ変換と確率的ハフ変換の出力画像とソースコードを上げておきます。
|
2
4
|
|
3
5
|
![入力画像](ae1538c11b027ad04a340ad09578317c.png)
|
4
6
|
|
5
|
-
![
|
7
|
+
![ハフ変換の出力画像](1190ebc50da1cf4a971c6cb196d60b7c.png)]
|
8
|
+
|
9
|
+
![確率的ハフ変換の出力画像](2721bd6a34905fcda773d854e813581b.png)
|
10
|
+
|
11
|
+
|
6
12
|
|
7
13
|
```python
|
8
14
|
|
@@ -47,3 +53,35 @@
|
|
47
53
|
cv2.imwrite('output.jpg',img)
|
48
54
|
|
49
55
|
```
|
56
|
+
|
57
|
+
```Python
|
58
|
+
|
59
|
+
import cv2
|
60
|
+
|
61
|
+
import numpy as np
|
62
|
+
|
63
|
+
img = cv2.imread('input.png')
|
64
|
+
|
65
|
+
gray=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)[:,:,1]
|
66
|
+
|
67
|
+
edges = cv2.Canny(gray,50,150,apertureSize = 3)
|
68
|
+
|
69
|
+
minLineLength = 50
|
70
|
+
|
71
|
+
maxLineGap = 10
|
72
|
+
|
73
|
+
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
|
74
|
+
|
75
|
+
for line in lines:
|
76
|
+
|
77
|
+
for x1,y1,x2,y2 in line:
|
78
|
+
|
79
|
+
cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
cv2.imwrite('output.png',img)
|
86
|
+
|
87
|
+
```
|