質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

6487閲覧

python3のPILで画像をグレースケールに変換したい

ayamik

総合スコア8

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

2クリップ

投稿2017/10/18 12:07

編集2017/10/19 11:42

python3でpilを用いて手持ちの画像をグレースケールに変換しようとしているのですが、白黒にならずコントラストが強く出たようなカラー画像になってしまいます。

以下書いてみたコードです。

from PIL import Image
from pylab import *

im = Image.open(‘ocean.jpg’)
gray = im.convert(‘L’)
gray.save(‘grayocean.jpg’)
imshow(gray)
show()

セーブした画像を端末から直接開くと白黒画像にちゃんとなっているのですが、spyder上から開くとコントラストの高いカラー画像になってしまいます。この方法では白黒画像は表示できないのでしょうか?

環境 ubuntu14.04 python3 spyder

ーー追加ーー
画像が挿入できることに気づきませんでした(;_;)
変換前
変換後spyder上で表示されたもの
saveしたあと端末から開いたもの

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/10/18 12:34

Q.1実際のコードは上記のものだけでしょうか?Q.2実際のocean.jpgを張り付けられますか?その方が回答が得られやすいと思います。
LouiS0616

2017/10/18 17:22

'LA'を指定することで、グレースケールで表示することが出来ました。しかし、この方法だとjpgで保存できませんので、参考程度に書いておきます。最悪表示と保存とでオブジェクトを使い分けるのありですが...
LouiS0616

2017/10/18 17:23

薄弱な根拠・根本的でない解・環境の相違(Win10)・単なる知識の不足・・・見られるレベルの回答が書けそうにないので。
ayamik

2017/10/19 11:54

たしかに'LA'でグレースケールに変換することができました!中身を見たところ0~255の1要素ではなく2要素で構成されているようですね。初めて見たので調べてみようと思います。
guest

回答1

0

ベストアンサー

pylabを使ったことはなかったのですが、実体はmatplotlibみたいですね。
matplotlibはグラフでよく使うモジュールで、
グラフのスケールがたぶん0が青、255が赤になっているのだと思います。


私のとこではライムっぽい色になりました。

ライム!

質問の真ん中の写真(0から数字の割り振ってあるスケール)の画面の時に、
画像の上をマウスをザーッと走らせると画素に合わせて下に値が出てくると思いますので、
言いたいことがなんとなく伝わると思います。

このライム色っぽい写真の場合、右上の空が240:黄色でした。


これが、下のコードを実行すると

Python

1# coding: UTF-8 2from PIL import Image 3from pylab import * 4 5im = Image.open("ocean.jpeg") 6gray = im.convert("L") 7gray.save("grayocean.jpg") 8#imshow(gray) 9imshow(gray, cmap='gray', interpolation='nearest') 10show()

こうなります。
グレースケール!

この場合、右上の空が240:白色でした。


カラースケールはmatplotlib.orgを参考にするとよいと思います。

投稿2017/10/19 12:29

編集2017/10/19 13:12
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayamik

2017/10/19 13:20

すごく納得いきました!丁寧に説明してくださって助かりました。分からないことがあったらライブラリの方を調べると糸口が見えるんですね、とても参考になりました!ありがとうございます(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問