🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

Q&A

解決済

1回答

5277閲覧

画像を指定したサイズにリサイズしたい

tenki3

総合スコア3

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

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

0グッド

0クリップ

投稿2020/06/19 02:45

前提・実現したいこと

google colabでマイドライブにある画像(正方形)を28×28にリサイズしたいのですが、うまくいきません。
一応以下のコードで読み込むと同時にリサイズできたようですが、今度はopencvで画像を確認できなくなりました。
リサイズについて調べたところ、元画像の拡大縮小についての記述はあるのですが、数字を指定してリサイズする方法を見つけられずつまずいています。
初歩的な質問で恐縮ですが、ご回答をよろしくお願いします。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-5-d0027ef4e25a> in <module>() ----> 1 cv2_imshow(img) /usr/local/lib/python3.6/dist-packages/google/colab/patches/__init__.py in cv2_imshow(a) 20 image. 21 """ ---> 22 a = a.clip(0, 255).astype('uint8') 23 # cv2 stores colors as BGR; convert to RGB 24 if a.ndim == 3: AttributeError: 'Image' object has no attribute 'clip'

該当のソースコード

python

1import tensorflow as tf 2from tensorflow import keras 3import numpy as np 4import matplotlib.pyplot as plt 5import cv2 6from google.colab.patches import cv2_imshow 7from keras.preprocessing import image 8 9 10img = image.load_img('drive/My Drive/Colab Notebooks/tamesi/6.png', target_size=(28, 28)) 11 12cv2_imshow(img) 13 14 15

試したこと

画像を読み込んだ後

img_res = img.resize((28,28))

img_res = resize(img,28, 28)

img_res= cv2.resize(img, dsize=(28, 28))

補足情報(FW/ツールのバージョンなど)

環境
google colab

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

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

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

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

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

guest

回答1

0

ベストアンサー

image.load_img() が返した段階ですでに (28, 28) にリサイズされています。
この関数が返す画像は OpenCV の画像形式である ndarray ではなく、pillow の PIL Image 形式です。print(type(img)) で確認してください。

OpenCV の cv2.imshow() で表示する場合、

img = np.array(img)

として、PIL Image 形式から numpy 形式に変換してください。

投稿2020/06/19 05:53

tiitoi

総合スコア21956

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

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

tenki3

2020/06/19 14:30

ご指摘通りに行ったところ、成功しました。ありがとうございます。 今回は結果的にリサイズできていましたが、opencvの形式によるリサイズ方法があれば、教えていただけないでしょうか。
tenki3

2020/06/21 05:34

ありがとうございます! 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問