質問編集履歴

2

コード

2018/08/06 05:26

投稿

uriuri
uriuri

スコア47

test CHANGED
File without changes
test CHANGED
@@ -1,106 +1,8 @@
1
- opencvを用いて白線を検出しようと考えています。
2
-
3
1
  ![イメージ説明](4cf9fc7778b428022c512bdb28aed516.jpeg)
4
2
 
5
3
 
6
4
 
7
- ``````
8
5
 
9
- python
10
-
11
- ```
12
-
13
- #coding: Shift_Jis
14
-
15
- import cv2
16
-
17
- import math
18
-
19
- import numpy as np
20
-
21
-
22
-
23
- img_src = cv2.imread("./〇〇/image_name")
24
-
25
- # 入力画像をグレースケール変換
26
-
27
- gray = cv2.cvtColor(img_src,cv2.COLOR_BGR2GRAY)
28
-
29
-
30
-
31
- #適応的しきい値処理
32
-
33
- th1 = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,\
34
-
35
- cv2.THRESH_BINARY,11,2)
36
-
37
-
38
-
39
- #ガウシアンフィルタ処理
40
-
41
- gauss = cv2.GaussianBlur(th1,(9,9),0)
42
-
43
-
44
-
45
- #キャニーエッジ検出
46
-
47
- edges = cv2.Canny(gauss,100,150)
48
-
49
-
50
-
51
- #LSD生成
52
-
53
- LSD = cv2.createLineSegmentDetector()
54
-
55
-
56
-
57
- #線分検出
58
-
59
- lines, width, prec, nfa = LSD.detect(edges)
60
-
61
-
62
-
63
- # グレースケール変換をBGR変換
64
-
65
- color = cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)
66
-
67
-
68
-
69
- # 直線の描画
70
-
71
- for i in range(len(lines)):
72
-
73
- for x1,y1,x2,y2 in lines[i] :
74
-
75
- cv2.line(color,(x1,y1),(x2,y2),(0,0,255),2)
76
-
77
-
78
-
79
- #OpenCVがBGRなのでRGBに変換
80
-
81
- disp_in_img = cv2.cvtColor(color, cv2.COLOR_BGR2RGB)
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
- cv2.imshow('src', img_src)
90
-
91
- cv2.imshow("nitika", th1)
92
-
93
- cv2.imshow('dst', disp_in_img)
94
-
95
-
96
-
97
-
98
-
99
- cv2.waitKey()
100
-
101
- cv2.destroyAllWindows()
102
-
103
- ```
104
6
 
105
7
  この結果が
106
8
 
@@ -108,31 +10,7 @@
108
10
 
109
11
  光の指す部分や地面を線分検出してしまったのですが、これらを取り除きたいと思っています。
110
12
 
111
- そのため
112
13
 
113
-   ・
114
-
115
-   ・
116
-
117
- edges = cv2.Canny(gauss,100,150)
118
-
119
-
120
-
121
- for i in range(0, len(edges)):
122
-
123
-   area = cv2.contourArea(edges[i])
124
-
125
-   if area < 100 or 150 < area:
126
-
127
-   continue
128
-
129
-   ・
130
-
131
-   ・
132
-
133
- エッジ検出のあとに面積計算の処理を入れたのですがエラーがでてしまいました。
134
-
135
- error: OpenCV(3.4.1) /io/opencv/modules/imgproc/src/shapedescr.cpp:272: error: (-215) npoints >= 0 && (depth == 5 || depth == 4) in function contourArea
136
14
 
137
15
 
138
16
 

1

画像の挿入

2018/08/06 05:26

投稿

uriuri
uriuri

スコア47

test CHANGED
File without changes
test CHANGED
@@ -147,3 +147,9 @@
147
147
 
148
148
 
149
149
  アドバイスいただけると幸いです。
150
+
151
+
152
+
153
+ 回答を参考にした結果
154
+
155
+ ![![イメージ説明](03e6d5d232b7a6f61a66970310f82b91.jpeg)](883ae2754ec2ae54167034e4af7f2282.jpeg)