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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

530閲覧

[Python] 画像輝度値取得時の不具合

afro087

総合スコア15

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/09/18 13:55

編集2022/09/18 14:28

前提

pythonで画像の輝度値を取得しcsvに保存するプログラムを作っています。
取得したcsvファイルのセル(A1頭で表される値の収納される場所)に(57, 57, 57)のように括弧の中に輝度値が入れられる不具合が起きています.
画像自体に問題があるのでしょうか.同じような問題に遭遇した方から助言頂ければと思います.

実現したいこと

セルに数字のみを表示されるようにしたいです.img = img.convert("L")を追加することで解決しました.ありがとうございます.

ソースコード

python

1import csv 2from PIL import Image 3import cv2 4import numpy as np 5import glob 6 7# 画像読込 8 9for i in range(10,30,10): 10 # 画像読込 11 img = Image.open("img_00"+str(i)+"mask.jpg") 12 #img = Image.open("Capture_%05d.png".format(i)) 13 14 width, height = img.size 15 16 ######################################################## 17 # 輝度値の取得、CSVファイルに保存 18 19 # 画像の輝度値をlistで取得 20 data = list(img.getdata()) 21 22 # 輝度値をCSVファイルで保存 23 with open('image_data' + str(i) + '.csv', 'w', newline='') as csvfile: 24 spamwriter = csv.writer(csvfile) 25 26 # 画像データを一行ごと書き込み 27 x = 0 28 for y in range(height): 29 # 一行分のデータ 30 line_data = data[x:x+width] 31 # 一行分のデータを書き込み 32 spamwriter.writerow(line_data) 33 x += width

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

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

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

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

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

meg_

2022/09/18 13:58

> csvファイルのセルに 「csvファイルのセル」とは何のことでしょうか?
meg_

2022/09/18 14:05 編集

> 取得したcsvファイルのセルに(57, 57, 57)のように括弧の中に輝度値が入れられる不具合が起きています. 不具合ではなく、dataがタプルのリストだからではないでしょうか? 数値のみが良いのであればタプルから数値を取り出して出力すれば良いかと思います。
melian

2022/09/18 14:17 編集

「輝度値」ということであれば、画像データを grayscale に変換する必要があります。具体的には以下の様にします。 # 画像読込 img = Image.open("img_00"+str(i)+"mask.jpg") img = img.convert("L") # 追加 width, height = img.size
jbpb0

2022/09/19 08:15

> (57, 57, 57)のように括弧の中に輝度値が入れられる不具合が起きています. 画像自体に問題があるのでしょうか. 数字が三つ並んでるのは、それぞれ画像の赤・緑・青の値です それらがカッコの中に入ってるのは、Pillow(PIL)の仕様です https://imagingsolution.net/program/python/pillow/getpixel_putpixel/#toc1 melianさんが書いてるグレースケールに変換する方法の他に、画像の赤・緑・青のどれか一つだけ取り出してもカッコはなくなります https://yu-nix.com/archives/python-pillow-image-getdata/#%E3%83%90%E3%83%B3%E3%83%89R%E3%81%AE%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB%E5%88%97%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B
jbpb0

2022/09/19 11:53

> img = img.convert("L")を追加することで解決しました. 自分で回答を書いて「自己解決」にしてください
guest

回答1

0

自己解決

img = img.convert("L")を追加することで解決しました.

投稿2022/09/19 14:33

afro087

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問