回答編集履歴

4

追記

2019/01/07 08:14

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -123,3 +123,37 @@
123
123
  **実行例**
124
124
 
125
125
  ![レナ姐さんごめんなさい](d0a178af8932463c3214fcc53941fca8.png)
126
+
127
+
128
+
129
+ 質問編集を受けて
130
+
131
+ ---
132
+
133
+ 鉛直な線及び水平な線を引きたいのですね。
134
+
135
+ それならば、私の書いたコードの関数rand_edgesを改造するだけです。
136
+
137
+ ```Python
138
+
139
+ def rand_edges(height, width):
140
+
141
+ pt_x = random.randrange(width)
142
+
143
+ pt_y = random.randrange(height)
144
+
145
+
146
+
147
+ return random.choice(
148
+
149
+ [
150
+
151
+ [(pt_x, 0), (pt_x, height-1)],
152
+
153
+ [(0, pt_y), (width-1, pt_y)]
154
+
155
+ ]
156
+
157
+ )
158
+
159
+ ```

3

画像の差し替え

2019/01/07 08:14

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -122,4 +122,4 @@
122
122
 
123
123
  **実行例**
124
124
 
125
- ![レナ姐さんごめんなさい](189143333dc6a05f8b93abf099d4042f.jpeg)
125
+ ![レナ姐さんごめんなさい](d0a178af8932463c3214fcc53941fca8.png)

2

追記

2019/01/07 07:49

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -27,3 +27,99 @@
27
27
 
28
28
 
29
29
  また、関数AddImage内で画像を複製する必要も無いように思います。
30
+
31
+
32
+
33
+ 書いてみた
34
+
35
+ ---
36
+
37
+ 面白そうだったので。
38
+
39
+ ```Python
40
+
41
+ import random
42
+
43
+ import cv2
44
+
45
+
46
+
47
+
48
+
49
+ def rand_edges(height, width):
50
+
51
+ # pt (x, y)
52
+
53
+ pt_up = random.randrange(width), 0
54
+
55
+ pt_down = random.randrange(width), height-1
56
+
57
+ pt_left = 0, random.randrange(height)
58
+
59
+ pt_right = width-1, random.randrange(height)
60
+
61
+
62
+
63
+ return random.sample(
64
+
65
+ [pt_up, pt_down, pt_right, pt_left], k=2
66
+
67
+ )
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+ def add_line(img):
76
+
77
+ height, width, depth = img.shape
78
+
79
+
80
+
81
+ edges = rand_edges(height, width)
82
+
83
+
84
+
85
+ print(*edges)
86
+
87
+ cv2.line(img, *edges, (0, 0, 0), thickness=2)
88
+
89
+
90
+
91
+
92
+
93
+ def main():
94
+
95
+ img = cv2.imread('Figure.png')
96
+
97
+ assert img is not None
98
+
99
+
100
+
101
+ for _ in range(10):
102
+
103
+ add_line(img)
104
+
105
+
106
+
107
+ cv2.imshow('result', img)
108
+
109
+ cv2.waitKey()
110
+
111
+
112
+
113
+
114
+
115
+ if __name__ == '__main__':
116
+
117
+ main()
118
+
119
+ ```
120
+
121
+
122
+
123
+ **実行例**
124
+
125
+ ![レナ姐さんごめんなさい](189143333dc6a05f8b93abf099d4042f.jpeg)

1

追記

2019/01/07 07:41

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -23,3 +23,7 @@
23
23
  cv2.waitKey()
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ また、関数AddImage内で画像を複製する必要も無いように思います。