質問編集履歴
4
日本語の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Numpy
|
1
|
+
Numpyにおける、円形状に並んだ配列の作成
|
test
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
|
3
3
|
円形上にデータが並んだNumpy配列を用意しようとしています。
|
4
|
-
|
5
|
-
- 不定長の配列に、不定長の半径の円(1ピッチになるのでギザギザになると思いますが)が入っている配列
|
6
|
-
|
7
|
-
- 中心ほど値が高くなるような円
|
8
4
|
|
9
5
|
|
10
6
|
|
@@ -14,45 +10,15 @@
|
|
14
10
|
|
15
11
|
|
16
12
|
|
17
|
-
もし、「細かいことは端折るけどこの関数を使ってみたら?」のような関数の提案でも構いませんので、皆様のご意見をいただけないでしょうか?
|
18
|
-
|
19
13
|
|
20
14
|
|
21
15
|
###発生している問題
|
22
16
|
|
23
|
-
例えば、以下のコードだと「十字型」の配列になりますが、円にはできません。
|
24
|
-
|
25
|
-
|
17
|
+
配列にそれっぽい値は収まっていますが、画像で確認しようとすると白くつぶれています。
|
26
18
|
|
27
19
|
|
28
20
|
|
29
|
-
```python
|
30
|
-
|
31
|
-
array = np.array([[0, 1, 0],
|
32
|
-
|
33
|
-
[1, 1, 1],
|
34
|
-
|
35
|
-
[0, 1, 0]],
|
36
|
-
|
37
|
-
np.uint8)
|
38
|
-
|
39
|
-
```
|
40
|
-
|
41
21
|
###該当のソースコード
|
42
|
-
|
43
|
-
自動的に規則正しい配列を作れる関数があるかどうかも知らない状態で、関数を探している状態のためまた出をつけてません。今日夕方くらいまで探してみて、なければfor文をぐりぐり回して力業で(x,y)の値を作ろうかなと考えています。
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
**2017.08.25 7:20A.M 追記**
|
48
|
-
|
49
|
-
やろうとしていることは`vignette filter`という技術のようです。
|
50
|
-
|
51
|
-
現状のコードを以下に貼ります。
|
52
|
-
|
53
|
-
※配列にそれっぽい値は収まっていますが、画像で確認しようとすると白くつぶれています。
|
54
|
-
|
55
|
-
|
56
22
|
|
57
23
|
```Python
|
58
24
|
|
@@ -102,8 +68,6 @@
|
|
102
68
|
|
103
69
|
```
|
104
70
|
|
105
|
-
|
106
|
-
|
107
71
|
###試したこと
|
108
72
|
|
109
73
|
stackoverflowの記事を何件か見ましたが、まだ煮え切っていない状態です。
|
@@ -122,8 +86,18 @@
|
|
122
86
|
|
123
87
|
|
124
88
|
|
89
|
+
|
90
|
+
|
125
91
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
126
92
|
|
127
93
|
Python3.x
|
128
94
|
|
129
95
|
Win10
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
**2017.08.25 7:20A.M 追記**
|
102
|
+
|
103
|
+
やろうとしていることは`vignette filter`という技術のようです。
|
3
コード追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,6 +44,64 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
+
**2017.08.25 7:20A.M 追記**
|
48
|
+
|
49
|
+
やろうとしていることは`vignette filter`という技術のようです。
|
50
|
+
|
51
|
+
現状のコードを以下に貼ります。
|
52
|
+
|
53
|
+
※配列にそれっぽい値は収まっていますが、画像で確認しようとすると白くつぶれています。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
```Python
|
58
|
+
|
59
|
+
import cv2
|
60
|
+
|
61
|
+
import numpy as np
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
def gaussian_generator(x, y, r, bool_normalize):
|
66
|
+
|
67
|
+
x_axis = cv2.getGaussianKernel(x, r)
|
68
|
+
|
69
|
+
y_axis = cv2.getGaussianKernel(y, r)
|
70
|
+
|
71
|
+
matrix = x_axis * y_axis.T
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
if bool_normalize == True:
|
76
|
+
|
77
|
+
max = 255
|
78
|
+
|
79
|
+
else:
|
80
|
+
|
81
|
+
max = 1/np.max(matrix)
|
82
|
+
|
83
|
+
matrix = max*(matrix/np.max(matrix))
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
print(matrix)
|
88
|
+
|
89
|
+
matrix = np.round(matrix,0)
|
90
|
+
|
91
|
+
print(matrix)
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
cv2.imshow("matrix",matrix)
|
96
|
+
|
97
|
+
cv2.waitKey(0)
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
gaussian_generator(10,10,5,True)
|
102
|
+
|
103
|
+
```
|
104
|
+
|
47
105
|
|
48
106
|
|
49
107
|
###試したこと
|
2
日本語の修正2
test
CHANGED
File without changes
|
test
CHANGED
@@ -21,6 +21,8 @@
|
|
21
21
|
###発生している問題
|
22
22
|
|
23
23
|
例えば、以下のコードだと「十字型」の配列になりますが、円にはできません。
|
24
|
+
|
25
|
+
これを不定長で自動で値を生成できるところを目指しています。
|
24
26
|
|
25
27
|
|
26
28
|
|
1
日本語の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
円形上にデータが並んだNumpy配列を用意しようとしています。
|
4
4
|
|
5
|
-
- 不定長の配列に、不定長の半径の円(ギザギザになると思いますが)が入っている配列
|
5
|
+
- 不定長の配列に、不定長の半径の円(1ピッチになるのでギザギザになると思いますが)が入っている配列
|
6
6
|
|
7
7
|
- 中心ほど値が高くなるような円
|
8
8
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
![イメージ](f7608ea505028488efa06e37b6cbb70e.png)
|
12
12
|
|
13
|
-
この場合では14x14に半径3の円が収まっているイメージです。
|
13
|
+
この場合では14x14に、(7,7)を中心として半径3の円が収まっているイメージです。
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -38,7 +38,9 @@
|
|
38
38
|
|
39
39
|
###該当のソースコード
|
40
40
|
|
41
|
-
|
41
|
+
自動的に規則正しい配列を作れる関数があるかどうかも知らない状態で、関数を探している状態のためまた出をつけてません。今日夕方くらいまで探してみて、なければfor文をぐりぐり回して力業で(x,y)の値を作ろうかなと考えています。
|
42
|
+
|
43
|
+
|
42
44
|
|
43
45
|
|
44
46
|
|