質問するログイン新規登録
Python

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

Q&A

解決済

2回答

5845閲覧

python AttributeErrorについて

afro087

総合スコア15

Python

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

0グッド

0クリップ

投稿2022/07/07 04:32

編集2022/07/07 05:10

0

0

AttributeError: 'NoneType' object has no attribute 'astype'
となってしまい困っています.プログラムは以下のように画像の輝度値を抽出し,シグモイド関数により強調処理した画像を保存しています.画像を1枚だけ読み込んだ場合はうまくできましたが,連番画像を扱うよう改造したところこのようなエラーがでてしまっています.
参考にしたサイト(https://www.higashisalary.com/entry/cv2-bright-sigmoid)

解答ありがとうございます.連番の画像が
rec4110.pgm
rec4140.pgm
rec4170.pgm
のように,30ずつの幅になっていたことが原因だと分かりました.
そのため,
for i in range(4110,4170,30):
とすることで解決できました.ありがとうございます!

#ライブラリのインポート
from PIL import Image
import os, glob
import matplotlib.pyplot as plt
import numpy as np
import cv2

edge_value=10

i=4110 #スタートフレーム
for i in range(4110,4170):
#ベース画像の読み込み
img = cv2.imread('rec' +str(i) +'.pgm',cv2.IMREAD_GRAYSCALE)
img = img.astype(np.float32)

#画像の輝度変化を強調する処理
edge_value = 53
img_edge = img-edge_value
sigmoid=1/(1+np.exp(-0.1*img_edge))*255
sigmoid=sigmoid.astype(np.uint8)

#画像の出力
cv2.imwrite('edge_value'+str(i)+'.pgm',sigmoid)

i=i+30

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

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

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

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

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

guest

回答2

0

ベストアンサー

python

1img = cv2.imread('rec' +str(i) +'.pgm',cv2.IMREAD_GRAYSCALE) 2img = img.astype(np.float32)

ここで、img.astype()を実行しようとして、「Noneにはastypeというメソッドはありませんよ」と言わけているのですから、img が None になっているということです。
なぜそうなっているかというと、たぶん、指定したファイル名のファイルがそこに存在しないのでしょう。

python

1img_file = 'rec' +str(i) +'.pgm' 2print(img_file) 3img = cv2.imread(img_file,cv2.IMREAD_GRAYSCALE) 4img = img.astype(np.float32)

などと変更して、ファイル名を確認してみてはどうでしょうか。

投稿2022/07/07 04:49

TakaiY

総合スコア14545

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

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

0

読み込もうとした画像ファイルが存在しないと提示エラーが発生します。
ファイルが存在するか確認し、なければ配置すると解消すると思います。

投稿2022/07/07 04:41

can110

総合スコア38352

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問