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

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

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

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

Q&A

0回答

978閲覧

Python3.9で任意の画像を読み込んでトリミングして表示する際にトリミング、表示ができない

xeno

総合スコア16

Python 3.x

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

0グッド

0クリップ

投稿2021/01/11 12:27

編集2021/01/11 12:42

Python3.9で任意の画像を読み込んで、その画像を任意でトリミングしたものと中心部からトリミングしたものをそれぞれ表示するプログラムを作成したいです。
しかし、以下の2つのことが解決できません。
1つ目は、任意でトリミング後の画像は生成できたのですが表示できません。
2つ目は、中心部からのトリミング画像が生成できません。
OSはWindowsです。
以下、コードです。

import cv2 from PIL import Image, ImageFilter import numpy as np import matplotlib.pyplot as plt def crop_center(pil_img, crop_width, crop_height): #画像の中心部を切り出す関数 img_width, img_height = pil_img.size return pil_img.crop(((img_width - crop_width) // 2, (img_height - crop_height) // 2, (img_width + crop_width) // 2, (img_height + crop_height) // 2)) img = cv2.imread("hukei.jpg") # 画像読み込み im_list = np.asarray(img) #画像をarrayに変換 plt.imshow(im_list) #貼り付け plt.show() #表示 # 画像のトリミング img_after = img[50 : 150, 100: 250] cv2.imwrite("hukei_after.jpg", img_after) # ---end--- img1 = cv2.imread("hukei_after") # 処理後の画像読み込み im_list1 = np.asarray(img1) #画像をarrayに変換 plt.imshow(im_list1) #貼り付け plt.show() #表示 # 画像の中心を切り出し im_crop = crop_center(img1,100,100) im_crop.save('center_hukei', quality=95) # ---end--- img2 = cv2.imread("center_hukei") #処理後の画像読み込み im_list2 = np.asarray(img2) #画像をarrayに変換 plt.imshow(im_list2) #貼り付け plt.show() #表示

以下、エラー文です。

Traceback (most recent call last): File "C:\Python 3.9\semi\trim.py", line 28, in <module> plt.imshow(im_list1) #貼り付け File "C:\Users????\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\pyplot.py", line 2724, in imshow __ret = gca().imshow( File "C:\Users????\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\__init__.py", line 1447, in inner return func(ax, *map(sanitize_sequence, args), **kwargs) File "C:\Users????\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\axes\_axes.py", line 5523, in imshow im.set_data(X) File "C:\Users????\AppData\Local\Programs\Python\Python39\lib\site-packages\matplotlib\image.py", line 702, in set_data raise TypeError("Image data of dtype {} cannot be converted to " TypeError: Image data of dtype object cannot be converted to float

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

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

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

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

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

jbpb0

2021/01/11 13:07 編集

> 表示できません。 ファイルが読めてないから cv2.imread("hukei_after") のファイル名を"hukei_after.jpg"に変える
jbpb0

2021/01/11 13:22

下記どちらも、ファイル名に拡張子(.jpgとか)が要ります im_crop.save('center_hukei'... cv2.imread("center_hukei")
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問