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

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

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

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

Q&A

解決済

2回答

1942閲覧

画像のRGB和が閾値以下のピクセルのインデックス番号を格納していく方法

ques346

総合スコア47

Python

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

0グッド

0クリップ

投稿2021/06/17 06:43

GoogleColaboratory使用

python

1from google.colab import drive 2drive.mount('/content/drive') 3 4import sys 5import numpy as np 6import matplotlib.pyplot as plt 7 8sys.path.append('/content/drive/My Drive') 9 10import ActivationFunction as AF 11 12from PIL import Image 13from IPython.display import display 14 15img = Image.open("drive/My Drive/mnist_dataset/alpha.jpg") 16img = img.resize((40, 40)) 17img = np.asarray(img) 18 19print(img)
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True). [[[255 255 255] [254 254 253] [248 237 237] [250 247 247] [255 255 255] [255 255 254] [241 242 241] [235 235 235] [235 235 235] [249 250 250] [255 255 255] [255 255 255] [255 255 255] [247 247 246] [224 225 240] [242 243 247] [255 255 254] [246 246 248] [239 239 247] [238 239 246] [251 252 250] [255 255 255] [255 255 255] [249 249 251] [239 239 247] [239 240 247] [239 239 247] [244 245 249] [249 250 248] [235 235 234] [235 235 235] [235 235 235] [239 239 239] [255 255 255] [255 255 255] [234 244 235] [220 239 227] [247 250 248] [255 255 255] [255 255 255]] [[255 255 255] [247 221 217] [235 46 52] [226 131 140] [254 255 255] [255 255 255] [104 100 94] [ 28 28 28] [ 30 29 30] [ 48 49 50] [191 194 197] [255 255 255] [211 209 228] [ 92 96 200] [ 78 85 202] [ 81 89 202] [190 196 228] [161 161 211] [ 77 84 207] [ 84 91 203] [ 93 101 205] [184 191 231] [255 255 255] [193 192 225] [ 77 83 206] [ 80 87 208] [ 74 81 206] [137 148 223] [207 203 194] [ 26 26 25] [ 23 23 23] [ 22 22 22] [ 73 77 81] [253 253 252] [148 210 159] [ 53 177 89] [ 55 179 92] [ 67 180 103] [197 230 211] [255 255 255]] [[255 255 255] [241 161 157] [228 17 25] [223 63 73] [246 248 249] [255 255 255] [ 76 71 65] [ 76 82 86] [210 210 209] [ 48 44 41] [ 83 88 93] [250 249 251] [ 88 90 196] [116 127 215] [227 229 244] [184 183 224] [175 179 218] [142 144 206] [ 96 108 209] [217 218 240] [148 148 210] [ 62 70 198] [217 222 242] [187 186 223] [ 70 79 200] [201 205 235] [208 210 239] [224 226 246] [194 190 184] [ 8 8 11] [172 175 178] [195 195 195] [207 208 209] [182 221 185] [ 32 171 74] [171 217 190] [226 242 230] [147 206 159] [165 216 183] [255 255 255]] [[253 255 254] [234 91 92] [219 108 114] [227 49 56] [235 204 210] [255 255 255] [ 79 74 69] [ 79 85 88] [210 210 209] [ 54 51 49] [147 152 154] [217 214 234] [ 62 70 197] [218 224 242] [255 255 255] [255 255 255] [254 254 251] [137 139 204] [108 121 212] [255 255 255] [255 254 247] [ 91 93 197] [148 159 224] [190 190 224] [ 73 82 201] [202 206 234] [209 211 238] [235 237 249] [196 192 185] [ 12 12 15] [174 177 179] [196 196 196] [225 225 226] [104 193 121] [ 91 191 130] [255 255 255] [255 255 255] [255 255 255] [252 252 251] [255 255 255]] [[248 230 226] [227 49 55] [231 212 215] [235 84 84] [225 136 146] [255 255 255] [ 86 82 76] [ 10 11 11] [ 25 24 24] [ 7 8 10] [152 156 156] [193 189 222] [ 68 78 199] [235 239 247] [255 255 255] [255 255 255] [255 255 254] [137 139 204] [107 120 212] [255 255 255] [255 255 253] [116 116 197] [126 135 215] [191 192 223] [ 59 67 201] [ 77 84 203] [ 70 78 201] [171 180 233] [204 199 190] [ 1 1 1] [ 17 17 17] [ 19 19 19] [127 127 131] [ 86 188 110] [127 201 158] [241 243 236] [115 197 137] [110 201 138] [193 229 208] [255 255 255]] [[242 173 168] [229 33 43] [235 152 156] [235 77 79] [223 74 86] [254 255 255] [ 78 74 68] [ 86 93 96] [236 236 236] [147 143 137] [ 17 18 19] [174 174 204] [ 67 76 201] [227 232 244] [255 255 255] [255 255 255] [255 255 254] [137 139 204] [107 120 212] [255 255 255] [255 255 251] [101 103 198] [140 151 221] [190 190 224] [ 77 86 201] [233 235 244] [242 243 249] [250 250 253] [196 190 185] [ 13 14 17] [209 212 216] [236 236 236] [245 243 244] [ 91 186 111] [107 196 143] [247 246 243] [142 209 159] [ 41 177 79] [147 211 173] [255 255 255]] [[235 98 97] [231 51 60] [238 86 92] [238 77 83] [227 37 47] [246 230 231] [ 78 77 70] [ 92 99 102] [252 252 252] [157 152 146] [ 11 12 15] [209 209 217] [ 73 78 198] [152 162 223] [254 254 253] [228 227 237] [201 203 224] [140 142 206] [106 119 211] [249 249 249] [193 191 222] [ 61 69 197] [203 211 240] [188 188 224] [ 76 85 201] [234 236 244] [244 244 249] [247 248 252] [195 189 184] [ 14 15 19] [229 233 236] [255 255 255] [255 255 255] [152 206 158] [ 39 174 83] [213 237 226] [255 255 255] [ 75 187 102] [146 211 172] [255 255 255]] [[227 31 36] [227 171 178] [254 255 255] [250 246 242] [229 45 49] [235 165 172] [ 84 87 80] [ 11 12 13] [ 36 36 36] [ 15 15 15] [117 121 125] [255 255 254] [172 171 216] [ 64 72 197] [ 94 102 206] [ 77 83 198] [169 176 221] [148 149 206] [ 61 70 202] [ 88 94 205] [ 70 77 199] [146 154 222] [255 255 254] [185 185 222] [ 56 64 199] [ 77 85 203] [ 72 80 202] [136 147 221] [197 193 183] [ 10 11 15] [226 230 233] [255 255 255] [255 255 255] [241 244 238] [ 90 186 112] [ 43 175 84] [ 76 187 110] [ 43 174 83] [169 219 190] [255 255 255]] [[242 194 197] [248 243 244] [255 255 255] [254 255 255] [244 208 208] [244 220 221] [211 213 211] [188 187 187] [184 184 184] [209 210 211] [255 255 255] [255 255 255] [255 255 253] [217 217 235] [181 183 227] [208 212 238] [252 253 252] [227 227 238] [202 204 236] [201 204 234] [226 227 244] [255 255 255] [255 255 255] [237 237 244] [204 205 235] [203 205 236] [201 203 236] [219 223 241] [240 239 236] [192 193 193] [248 248 249] [255 255 255] [255 255 255] [255 255 255] [249 250 247] [192 226 200] [172 219 187] [213 236 223] [252 253 253] [255 255 255]] [[255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255]] 中略 [[253 253 251] [237 147 147] [236 194 200] [255 255 255] [247 228 224] [232 131 135] [244 235 235] [139 137 135] [108 109 109] [104 104 104] [187 174 175] [236 110 113] [232 102 111] [238 201 205] [255 255 255] [174 172 167] [144 148 150] [255 255 255] [230 228 225] [109 108 107] [193 200 201] [244 165 163] [239 118 123] [239 117 122] [237 116 123] [232 210 207] [142 212 162] [226 242 234] [255 255 255] [255 255 255] [186 224 191] [155 216 178] [254 251 249] [205 163 202] [229 221 236] [255 255 255] [237 223 231] [198 152 199] [242 240 246] [255 255 255]] [[255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [254 255 255] [254 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255] [255 255 255]]]

この各ピクセルのRGB情報の、各RGB和が閾値以下、例えば100以下となるようなピクセルのインデックス?番号を取り出し、リストか変数かに入力していきたいのですが、上手い方法はありますでしょうか?

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

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

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

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

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

guest

回答2

0

以下で得ることができます。

python

1>>> print(img.shape) 2(333, 500, 3) 3>>> indextpl = np.where(np.sum(img, axis=2, dtype=np.uint32)<=100) 4>>> print(indextpl) 5(array([ 0, 0, 0, ..., 331, 331, 332], dtype=int64), array([ 0, 1, 2, ..., 240, 249, 250], dtype=int64))

結果は1次元ndarray二つのtupleで、indextpl[0]とindextpl[1]は長さが同じであり、それぞれが条件を満たす点のindex0とindex1です。

indexとして長さ2のtupleのリストとかにしたければ、内包表記などで簡単に変換できるのでやってみてください。

投稿2021/06/17 09:19

ppaul

総合スコア24666

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

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

0

ベストアンサー

結果格納用のリストを用意して、2重のループを回して、その場所のデータが条件に合う場合は、インデックスの情報をリストに追加する、でできるでしょう。


あいかわらず回答を見ていただけないようですが、他に回答していただいたので、別のやつを

やろうとしていることは2値化のようですから、以下のようにすれば思ったようなものになるのではないでしょうか。

python

1img = Image.open("drive/My Drive/mnist_dataset/alpha.jpg") 2img = img.resize((40, 40)) 3img = img.convert('L') 4img = img.point(lambda x: 1 if x > 128 else 0) 5img = np.asarray(img)

投稿2021/06/17 06:54

編集2021/06/17 09:26
TakaiY

総合スコア12763

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

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

ques346

2021/06/19 15:13 編集

この回答頂いたコードを書いたのですが、 このxというのは何なのでしょうか、 RGBの、一番左のRの値でしょうか? これ、R,G,Bの和の閾値を考えたいときは、x+y+z等とすれば良いのでしょうか? また、出力されたリスト [[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] [1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1] [1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1] 中略 このリスト内の0のインデックス番号?(位置番号みたいな)を取得するにはどうすれば良いのでしょうか?例えば、 [1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1] の、初めの0なら、2番目のリストの、左から3番目なので、(2,3)とか、3とか、出力したいのですが。
TakaiY

2021/06/19 16:45 編集

質問に対する回答はそのままppaulさんが出しているので、僕のは別解です。 ・ 「各RGB和」というのはグレースケールにしていることと同等(注1)なのでまずは「img.convert('L')」でグレースケールにしています。 256階調のグレースケールになっています。 このタイミングで表示すればわかるでしょう。 ・「閾値以下」のものを取り出したいというのは、ある一定値で振り分けたいということなので、二値化すればいいだろうということで、「point(lambda x: 1 if x > 128 else 0)」で中央値の128で振り分けてみました。 なので、このラムダ式のxはグレースケール値です。 > このリスト内の0のインデックス番号?(位置番号みたいな)を取得するにはどうすれば良いのでしょうか 結果格納用のリストを用意して、2重のループを回して、その場所のデータが条件に合う場合はインデックスの情報をリストに追加する、という処理でできるでしょう。 注1 : グレースケール化のときの変換は単に足して3で割っているわけではないので、質問とは異なる処理になりますが、この処理の方が本来の趣旨に合った果が得られるだろうと思います
ques346

2021/06/20 00:38

これは二次元リスト(行列?)だと思うのですが、 この各成分のインデックス番号?を取得するにはどうすれば良いのでしょう。 numpyなので、通常のは使えないし、 np.whereも、なんか違うデータみたいですし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問