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

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

新規登録して質問してみよう
ただいま回答率
85.35%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

2093閲覧

画像が黒くなってしまう

takeuchi0525

総合スコア21

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Python

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/05/12 08:31

画像を縦方向に縮小するプログラムをつくりたいです。このプログラムを実行すると、ちゃんと縮小はできているのですが、(swallowtail.jpg←蝶の画像)ではなく黒い画像が表示されました。imgの配列が空だからですか?縮小された蝶の画像を表示するにはどうしたらよいですか?回答よろしくお願いいたします。python3.7 spyder

import numpy as np from PIL import Image img_orig = np.array(Image. open('swallowtail.jpg')) height_orig,width_orig = img_orig.shape[0],img_orig.shape[1] v = np.array([height_orig,width_orig]) A = np.array([[0.5,0],[0,1]]) height,width = np.dot(v,A) img = np.empty((int(height),int(width),3),dtype='uint8') img_pil = Image.fromarray(img) img_pil.show()

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

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

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

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

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

TakaiY

2021/05/12 10:21

自分で書いているとおり「imgの配列が空だから」ですが、目的は何ですか?画像を縮小したいだけであれば、numpyなど使わずにPIL.Image.resize()でできると思いますけど。
takeuchi0525

2021/05/12 12:40

回答ありがとうございます。学校の授業でresizeを使わずnumpyでやるように言われたもので(;^ω^)
guest

回答1

0

自己解決

import numpy as np from PIL import Image img_orig = np.array(Image. open('swallowtail.jpg')) height_orig,width_orig = img_orig.shape[0],img_orig.shape[1] v = np.array([height_orig,width_orig]) A = np.array([[0.5,0],[0,1]]) height,width = np.dot(v,A) img = np.empty((int(height),int(width),3),dtype='uint8') for i in range(int(height)): for j in range(int(width)): img[i][j][0],img[i][j][1],img[i][j][2] = img_orig[i*2][j][0],img_orig[i*2][j][1],img_orig[i*2][j][2] img_pil = Image.fromarray(img) img_pil.show()

このようなプログラムを組むことによって正常に動作しました。
前のプログラムだと空の配列を画像にしていましたね(;^ω^)

投稿2021/05/12 13:03

takeuchi0525

総合スコア21

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問