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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

1430閲覧

コマンドライン引数で画像を渡し、visual studio内で画像処理

退会済みユーザー

退会済みユーザー

総合スコア0

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/07/16 15:58

前提

visual studioで画像処理に入力画像(カラー)とトライマップ画像を利用して前景画像の切り抜きを行っています。
そこで、コマンドプロンプトからコマンドライン引数を指定して、visual studioで読み込むことができると知りました。
しかし、コマンドライン引数を用いて画像処理を行っているサイトがなかなか見つからず、作業が思うように進みません。

分かりにくい文章になってしまい、申し訳ございません。

実現したいこと

入力画像(カラー)とトライマップ画像をコマンドライン引数を用いて参照したい。

どのようにしてコマンドプロンプトで画像ファイル名を指定すればvisual studio内で参照できるようになりますか?

該当のソースコード

C++

1//コードが長いため一部だけ載せさせていただきます。 2if (argc != 4) 3 { 4 cout << "Usage: ProjectMatting.exe input.png trimap.png output.png" << endl; 5 return -1; 6 } 7 8 string img_filename = argv[1]; 9 string trimap_filename = argv[2]; 10 string output_filename = argv[3]; 11 Mat img = imread(img_filename, cv::IMREAD_COLOR); 12 Mat trimap = imread(trimap_filename, cv::ImreadModes::IMREAD_GRAYSCALE);

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

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

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

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

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

BeatStar

2022/07/16 21:23

で、何がしたいのでしょうか? もしかして画像を表示したいってことですか? それなら無理です。 Visual Studioは単なる開発するためのソフトです。コンパイラやエディタが一つになったやつです。 EXCELだけで人間を作るようなものです。物理的に無理。 これってC++だけでやってるんですよね?Windows APIとかは使ってないんですよね?無理です。
dodox86

2022/07/17 00:16

VisualStudioはC++の開発環境であるだけで、それが画像を表示する訳ではありません。「VisualStudioで作成したC++のプログラムで、デバッグなどの実行時にコマンドプロンプトの様なターミナル上でコマンドラインの引数で画像ファイルを指定するにはどうしたら良いのでしょうか?」との様なご質問内容なのでしょうか。
退会済みユーザー

退会済みユーザー

2022/07/17 04:10

>>VisualStudioで作成したC++のプログラムで、デバッグなどの実行時にコマンドプロンプトの様なターミナル上でコマンドラインの引数で画像ファイルを指定するにはどうしたら良いのでしょうか? 勉強不足で申し訳ございません。dodox86様の仰るとおりです。
BeatStar

2022/07/17 22:16

とりあえず基礎からやりましょう。
guest

回答3

0

ベストアンサー

思い切って、visual studioを再インストールしてみたらなぜか実行できました。
問題は環境にあったのでしょうか?

投稿2022/07/21 07:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

visual studioでc++のソースコードをコンパイルしてできた「ProjectMatting.exe」と、画像ファイル「input.png」と「trimap.png」を、全て同じ場所(パス)に置いてください
(画像ファイル名は半角文字のみ可)

その場所(パス)が「C:\aaa\bbb\ccc」ならば、コマンドプロンプト上で下記のように入力すれば実行できると思います
(c++のコードが間違ってなければ)

cmd

1cd /d C:\aaa\bbb\ccc 2ProjectMatting.exe input.png trimap.png output.png

投稿2022/07/17 16:07

編集2022/07/17 16:28
jbpb0

総合スコア7651

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

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

0

イメージ説明

VSからの起動時に引数を渡したいのであれば、「ここ」に引数をいれる
#「構成」と「プラットフォーム」には注意。

という内容でいいのかな

投稿2022/07/17 04:25

yominet

総合スコア187

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

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

退会済みユーザー

退会済みユーザー

2022/07/17 04:49

ご回答ありがとうございます。 入力についてですが、 『AAA.png BBB.png』という書き方で合っているのでしょうか?きちんとパスを書かないとエラーが起きてしまうのでしょうか?
yominet

2022/07/17 05:15 編集

それは他の人にはわかりません。 引数は、「ファイルパス」という属性を含んで渡しているのではなく、あくまで「文字列」を渡しているだけです(スペースを基準に分離するぐらいはしてくれてますが) なので、引き渡された文字列を「ファイルパス(の一部?)」として扱い、対象のファイルがどこに置かれているか?起動したアプリの現在のカレントディレクトリはどこを指しているのか? などの条件を組み合わせて処理するために、ご自身のプログラム内できちんと管理する必要があります。
yominet

2022/07/17 05:27

最近の開発用のソフトには「ブレーク」して途中の状態を確認する機能が充実してるのですがから いきなりすべての事の成功を期待するのではなく 「引数がどういう風に渡されるのか?」 「imreadに引き渡す文字列は正しいものになっているのか?」など順番に確認しましょう
退会済みユーザー

退会済みユーザー

2022/07/17 11:15

詳しく教えていただきありがとうございます。 該当のソースコードが、 argv[1] argv[2] argv[3] と3つ用意されていると言うことは引き渡す文字列も3つ必要ということになりますか?
yominet

2022/07/18 15:11

質問が3つに分かれているので、まとめたらどうですかね。 #VSから起動させる際の引数の渡し方については伝わったと思うでここは終わらせるなど あと、17日にも書いたけど「順番に確認しましょう」。 先に書いた内容以外で、imreadは成功しているのか? Mat img と Mat trimapに中身がちゃんと入っているのか? エラーはどこの関数で出ているのか? なども
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問