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

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

詳細はこちら
OpenCV

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

Q&A

解決済

1回答

609閲覧

画像の水増しをしようとしたところ、画像が読めませんでした。

退会済みユーザー

退会済みユーザー

総合スコア0

OpenCV

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

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

0グッド

0クリップ

投稿2020/12/02 06:44

画像の水増しをしようとあるサイトを参考に行ったのですが、画像の読み込みがうまくいっていないようなのですが、パスの場所に画像はあり、原因が分かりません!
初心者なので、修正したコードなどで、できるだけわかりやすく教えていただけると幸いです。

エラーコード 
AttributeError: 'NoneType' object has no attribute 'shape'

import numpy as np
import cv2

#画像変換条件
filter1 = np.array([[0, 1, 0],
[1, 0, 1],
[0, 1, 0]], np.uint8)
filter2 = np.ones((3, 3))

list_resize = [2, 3, 5, 7]
list_mosaic = [3, 5, 7, 10]
list_rotation = [45, 135, 225, 315]
list_flip = [0, 1, -1]
list_cvt1 = [0]
list_cvt2 = [0]
list_THRESH_BINARY = [50, 100, 150, 200]
list_THRESH_BINARY_INV = [50, 100, 150, 200]
list_THRESH_TRUNC = [50, 100, 150, 200]
list_THRESH_TOZERO = [50, 100, 150, 200]
list_THRESH_TOZERO_INV = [50, 100, 150, 200]
list_gauss = [11, 31, 51, 71]
list_gray = [0]
list_nois_gray = [0]
list_nois_color = [0]
list_dilate = [filter1, filter2]
list_erode = [filter1, filter2]

parameters = [list_resize, list_mosaic, list_rotation, list_flip, list_cvt1, list_cvt2, list_THRESH_BINARY,
list_THRESH_BINARY_INV, list_THRESH_TRUNC, list_THRESH_TOZERO, list_THRESH_TOZERO_INV, list_gauss,
list_gray, list_nois_gray, list_nois_color, list_dilate, list_erode]

#水増し画像の合計
list_sum =len(list_resize) + len(list_mosaic) + len(list_rotation) + len(list_flip) + len(list_cvt1) + len(list_cvt2) + len(list_gray) + len(list_nois_gray) + len(list_nois_color) + len(list_dilate) + len(list_erode)
print("合計:{}枚".format(list_sum))

#実行する関数のリスト
methods = np.array([lambda i: cv2.resize(img, (img.shape[1] // i, img.shape[0] // i)),
lambda i: cv2.resize(cv2.resize(img, (img.shape[1] // i, img.shape[0] // i)), (img.shape[1],img.shape[0])),
lambda i: cv2.warpAffine(img, cv2.getRotationMatrix2D(tuple(np.array([img.shape[1] / 2, img.shape[0] /2])), i, 1), (img.shape[1], img.shape[0])),
lambda i: cv2.flip(img, i),
lambda i: cv2.cvtColor(img, cv2.COLOR_BGR2LAB),
lambda i: cv2.bitwise_not(img),
lambda i: cv2.GaussianBlur(img, (i, i), 0),
lambda i: cv2.imread(r"C:\Users\〷\Desktop\pic\1", i),
lambda i: cv2.fastNlMeansDenoising(cv2.imread(r"C:\Users\〷\Desktop\pic\1", i)),
lambda i: cv2.fastNlMeansDenoisingColored(img),
lambda i: cv2.dilate(img, i),
lambda i: cv2.erode(img, i)
])

#水増し画僧の保存用関数
def save(cnv_img):
cv2.imwrite(r"C:\Users\〷\Desktop\pic\1" + str(num) + ".jpg", cnv_img)

#画像タイトル用ナンバーの初期化
num = 0

#元画像の読み込み
img = cv2.imread(r"C:\Users\〷\Desktop\pic\1")

#画像の水増しと保存
for ind, method in enumerate(methods):
for parameter in parameters[ind]:
num += 1
cnv_img = method(parameter)
save(cnv_img)

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記コードはフォルダを指定しているか、拡張子が不足しているのではないでしょうか?

python

1img = cv2.imread(r"C:\Users\〷\Desktop\pic\1")

投稿2020/12/02 08:34

meg_

総合スコア10739

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

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

退会済みユーザー

退会済みユーザー

2020/12/02 08:48

回答ありがとうございます。 .jpg を加えて実行した結果このようなエラーが出ました・・・ 調べてもいまいち意味が分かりません lambda i: cv2.GaussianBlur(img, (i, i), 0), error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-6sxsq0tp\opencv\modules\imgproc\src\smooth.dispatch.cpp:297: error: (-215:Assertion failed) ksize.width > 0 && ksize.width % 2 == 1 && ksize.height > 0 && ksize.height % 2 == 1 in function 'cv::createGaussianKernels'
退会済みユーザー

退会済みユーザー

2020/12/02 09:03

すみません!! できました! 本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問