[解決済み] PILで画像を保存するにはどうすればよいですか?
2022-03-02 17:14:37
質問
Python image library (PIL) を使って、以前見つけた投稿で画像のフーリエ変換を行ったところ、保存関数がうまくいきません。コード全体は問題なく動作するのですが、結果の画像を保存することができません。
from PIL import Image
import numpy as np
i = Image.open("C:/Users/User/Desktop/mesh.bmp")
i = i.convert("L")
a = np.asarray(i)
b = np.abs(np.fft.rfft2(a))
j = Image.fromarray(b)
j.save("C:/Users/User/Desktop/mesh_trans",".bmp")
出るエラーは以下の通りです。
save_handler = SAVE[string.upper(format)] # unknown format
KeyError: '.BMP'
Pythons PILで画像を保存するにはどうすればよいですか?
どのように解決するのですか?
ファイル拡張子に関するエラーが発生した場合、以下のいずれかの方法で対処してください。
BMP
(ドットなし) または拡張子付きの出力名を渡します。さて、このエラーを処理するには、整数イメージとして保存されるように、周波数領域のデータを適切に修正する必要があります。
PIL
は、BMPとして保存するためのfloatデータを受け付けないことを告げています。
以下はその提案です(その他、細かい修正、例えば
fftshift
と
numpy.array
ではなく
numpy.asarray
) を使って、適切な視覚化のための変換を行います。
import sys
import numpy
from PIL import Image
img = Image.open(sys.argv[1]).convert('L')
im = numpy.array(img)
fft_mag = numpy.abs(numpy.fft.fftshift(numpy.fft.fft2(im)))
visual = numpy.log(fft_mag)
visual = (visual - visual.min()) / (visual.max() - visual.min())
result = Image.fromarray((visual * 255).astype(numpy.uint8))
result.save('out.bmp')
関連
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python jiabaライブラリの使用方法について説明
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない