質問するログイン新規登録

質問編集履歴

2

追加

2019/12/12 11:49

投稿

HAMUTAROSAN
HAMUTAROSAN

スコア4

title CHANGED
File without changes
body CHANGED
@@ -120,4 +120,6 @@
120
120
  plt.tight_layout()
121
121
  plt.savefig('IMAGE.png', transparent=True)
122
122
  ```
123
- ↑画像は保存できるが透過部分が残ってしまう。できれば64×64配列の部分のみを保存したい
123
+ ↑画像は保存できるが透過部分が残ってしまう。できれば64×64配列の部分のみを保存したい
124
+ また、Aのグレースケールは以下のような画像です(plt.imshow(A, cmap='gray')部分)
125
+ ![イメージ説明](7edca4abe1814ff958d3db055c9c8135.png)

1

追加

2019/12/12 11:48

投稿

HAMUTAROSAN
HAMUTAROSAN

スコア4

title CHANGED
@@ -1,1 +1,1 @@
1
- numpy: ndarrayをグレースケールの画像として保存したい
1
+ numpy: ndarrayを二値画像ではなくグレースケールの画像として保存したい
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- numpy.ndarrayに格納している**64×64の配列をグレースケールの画像として表示、保存をしたい**です.
3
+ numpy.ndarrayに格納している**64×64の配列をグレースケールの画像として表示、保存をしたい**です.(元々配列を二値化、つまり白黒画像にして保存するものだったがグレースケールに変換するバージョンも作りたい)
4
4
  matplotlibを用いて表示はできているのですが、上下に透過部分が余分に入ってしまいます。
5
5
  画像1,2枚の保存だけでなくfor文内で実行して数万枚単位で保存をするため、できれば
6
6
  ①外部のトリミングソフトの使用は控えたい
@@ -53,9 +53,20 @@
53
53
  """
54
54
  A=np.real(B[i,:,:])#Bの配列内の実数部のみをAに移した
55
55
  type(A)
56
+ """
57
+ 元々の二値化する方では以下のようにして二値化画像を保存していた。
58
+ できればこの部分のみを変えて実現したい
59
+ binary=np.real(B[i,:,:])
60
+ th=0.0
61
+ im_bin=(binary>th)*255
62
+ im_bin2=cv2.bitwise_not(im_bin)+256
63
+ pilImg = Image.fromarray(np.uint8(im_bin2))
64
+
65
+ pilImg.save("%03.f"%(i)+".png")
66
+ """
56
67
  ```
57
- ↑numpy.ndarrayを返す
58
68
 
69
+
59
70
  ### 試したこと
60
71
  ```
61
72
  type(A)