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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

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

OpenCV

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

C++

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

Q&A

解決済

1回答

2715閲覧

openCVのimwriteについて

bluet

総合スコア12

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

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

OpenCV

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

C++

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

0グッド

0クリップ

投稿2018/10/06 01:00

前提・実現したいこと

openCVで画像処理(画像の編集)し、結果の画像を保存をするシステムを作っています。
処理後のMatをimwrite関数で画像ファイルとして書き出しするところで以下のエラーメッセージが発生しました。

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

This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information. 

上記がターミナル上に表示されます。
画像ファイルも作成出来ていませんでした。

該当のソースコード

C言語

1cv::imwrite("test.jpg",mat);

試したこと

・出力ファイルの形式をjpg,png,bmpで試しましたが、だめでした。
・imwriteの戻り値も受け取れていませんでした。
・cvSaveImageを使っても同じエラーメッセージが表示されて保存できませんでした。
・自分で編集したmat以外に、以下をimwriteの直前で作成して、出力を試みましたが、同じ症状でした。
cv::Mat red_img(cv::Size(640, 480), CV_8UC3, cv::Scalar(0,0,255));
・imread,imshow等他のopencvの関数は動作しており、imshowでは処理結果を表示できています。

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

Windows10 64bit
Visual Studio 2008
OpenCV 3.4.3

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

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

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

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

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

tiitoi

2018/10/06 01:48

OpenCVのインストールはどのように行いましたか?ソースビルドの場合、ビルド時にエラー等は出てませんでしたか?
kazto

2018/10/06 06:42

cv::imwrite("test.jpg",mat); のmatが空の場合、提示されたような状況になりがちです。imwriteするまでの処理のソースを追記お願いします。
bluet

2018/10/06 13:55

・opencvのインストールについては、公式ページのWindows用のパッケージをCドライブ直下に展開しました。エラーメッセージ等は出ていません。
bluet

2018/10/06 14:09

・処理についてですが、今手元にはないのですが上記のred_imgをmatの部分に差し替えても同じだったのですが、そういうものでしょうか?
guest

回答1

0

ベストアンサー

This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

イメージ説明

エラーは上のようなダイアログに表示されたのですよね?
これは OpenCV のエラーではなく、なんらかの原因でアプリケーションが落ちたときに表示される Windows の表示なので、エラー解決のヒントにはならないです。

Visual Studio でビルド実行した際、コンソールに下記のようなメッセージが出ていませんでしたか?

OpenCV Error: Assertion failed エラー内容

追記

質問欄にあるコードで実行ファイルと同じディレクトリに "test.png" という画像が出力されることを確認できました。

cpp

1#include <opencv2/opencv.hpp> 2 3int main() 4{ 5 cv::Mat img(cv::Size(640, 480), CV_8UC3, cv::Scalar(0, 0, 255)); 6 cv::imwrite("test.png", img); 7} 8

このコードが実行時にエラーで落ちるということは、OpenCV で imwrite() を使用するのに必要なライブラリが不足している等が考えられます。
OpenCV の導入は、基本的にバイナリのインストールでなく、ソースビルドで行ったほうがよいです。

CMakeを使ったOpenCVのカスタマイズ
VisualStudio2017CommunityでOpenCV開発環境の構築

VS2008 は古いですが、OpenCV は C++11 の機能は多分使ってないと思うので、多分ビルドできるかと思います。

投稿2018/10/06 15:00

編集2018/10/06 16:01
tiitoi

総合スコア21956

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

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

bluet

2018/10/06 15:47

後出しになって申し訳ありません。 コンソールアプリを作成していたためか添付画像のようなダイアログは別途表示されていませんでした。 コンソール画面上に他にprintfした内容に併せてThis application...のメッセージが表示されていたということになります。 こういう場合にopencv errorを確認する方法等はご存知でしょうか?
tiitoi

2018/10/06 16:03

通常、OpenCV で関数に与える引数が間違っていた場合などは、OpenCV Error: Assertion failed がコンソールに表示されます。今回のようになにも表示されず、質問コードは自分の環境では問題なく実行できたので、OpenCV の使い方の問題ではなく、インストールに問題があったのではないかと思います。 解決策としては OpenCV をソースビルドしてみてはどうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問