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

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

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

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

Python

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

Q&A

1回答

853閲覧

画像データの水増しについて

kinjikinji

総合スコア1

OpenCV

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

Python

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

0グッド

0クリップ

投稿2021/06/27 08:49

画像データの水増しについて

ls fake_images を入れたらls: cannot access 'fake_images': No such file or directory
このようなエラーが出てしましました

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

画像データの水増をしファイルを保存したはずですが、確認のためls fake_image
を実行したらエラーになってしまいます。

ls: cannot access 'fake_images': No such file or directory

該当のソースコード

import os
import cv2

def make_image(input_img):
#画像サイズ
img_size=input_img.shape
filter_one=np.ones((3,3))

#回転用
mat1=cv2.getRotationMatrix2D(tuple(np.array(input_img.shape[:2])/2),23,1)
mat2=cv2.getRotationMatrix2D(tuple(np.array(input_img.shape[:2])/2),144,0.8)

#水増しに使うメゾットです。
fake_method_array = np.array([
lambda image:cv2.warpAffine(image,mat1,image.shape[:2]),
lambda image:cv2.warpAffine(image,mat2,image.shape[:2]),
lambda image:cv2.threshold(image,100,255,cv2.THRESH_TOZERO)[1],
lambda image:cv2.GaussianBlur(image,(5,5),0),
lambda image:cv2.resize(cv2.resize(image,(img_size[1]//5,img_size[0]//5)),(img_size[1],img_size[0])),
lambda image:cv2.erode(image,filter_one),
lambda image:cv2.flip(image,1),
])

#画像変換処理を行います。
images = []

for method in fake_mathod_array:
faked_img = mathod(input_img)
images.append(faked_img)

return images

#画像を読み取ります
target_img = cv2.imread("ABFE34FC-21CB-4747-B776-7D337E3BA1FC.png")

#画像を水増しします
fake_images = make_image(target_img)

#画像を保存するフォルダを作成
if not os.path.exists("fake_images"):
os.mkdir("fake_images")

for number,img in enumerate(fake_images):
#まず保存先のディレクトリ”fake_image/"を指定して番号つけて保存します
cv2.imwrite(" fake_images " + str(number) + "jpg",img)

#実行後
ls fake_image

python

試したこと

本と見比べましたが解決には至っておりません。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ソースが読み難いのは修正してほしいですが、内容的には深く見てみることもできないのですが、僕なら、

■ fake_imageディレクトリが作成されていないことの確認

  • lsコマンドを実行しているパスは正しいパスか確認する

■ ファイルが作成されているかどうかの確認。

  • コマンドが正常に想定どおり実行されているか確認する。
    デバッグ付きで実行するとか、要所にprintを仕込んで状況を見てみるなど。

あと、

python

1cv2.imwrite(" fake_images " + str(number) + "jpg",img)

この処理だと、fake_imagesディレクトリでなく、コマンドを実行したディレクトリに直接出力されるようになっているので、「ls」だけしてみると幸せになれるかもしれません。 すでにやっているとは思いますが。
拡張子の前の「.」もあったほうがいいでしょう。

投稿2021/06/27 09:06

TakaiY

総合スコア12830

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

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

kinjikinji

2021/06/27 11:45

ls のみで実行したところ前に保存されていたものが出てきましたので、おそらく fake_imageに水増の画像が保存されていないのかなと思います。 jpgの前 「.」 も入れましたが相変わらず  ls fake_image で実行すると  cannot access 'fake_images': No such file or directory となってしまいます。
TakaiY

2021/06/27 13:34

「デバッグ付きで実行するとか、要所にprintを仕込んで状況を見てみるなど。」をお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問