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

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

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

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

C++

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

Q&A

解決済

1回答

4387閲覧

opencv_highgui220d.dll のシンボルが読み込まれない

Kaku-m

総合スコア13

OpenCV

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

C++

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

0グッド

0クリップ

投稿2019/01/28 03:59

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
C++、open cv 2.0でパターンマッチングによる着目点の追跡プログラムを作成中です。
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

もともとのプログラムに使われていた動画を変更したところ以下のようなエラーメッセージが出ました。

エラーメッセージ ```video <情報はありません。opencv_highgui220d.dll のシンボルが読み込まれていません> cv::VideoCapture また、そのままデバッグを続けると、最後にこのようなエラーが出ました。 0x0F4C2331 (opencv_imgproc220d.dll) で例外がスローされました (match.exe 内): 0xC0000005: 場所 0x038C237F の読み取り中にアクセス違反が発生しました ### 該当のソースコード ```ここに言語名を入力 ソースコード

c++

#include "main.h"

/// 指定したフレーム番号の画像をimageに抜き出す
/// imageをグレースケールに変換
int GetGrayImage(cv::VideoCapture& video, int frameNo, cv::Mat& image)
{
const int x = 45, y = 400; // 抜き出す領域の中心点
const int w = 320, h = 568; // 抜き出す領域の幅(w*hが抜き出す幅となる)
CvRect rect = {x, y, w, h};

cv::Mat frame; video.set( CV_CAP_PROP_POS_FRAMES, frameNo); video >> frame; ASSERT( !frame.empty(), "img2は空です"); cv::Mat cut(frame, rect); cv::cvtColor(cut, image, CV_BGR2GRAY); return 0;

}

//カラー画像切り取り用
int GetImage(cv::VideoCapture& video2, int n, cv::Mat& img)
{

CvRect rect = {45, 400, 320, 568}; cv::Mat frame; video2.set( CV_CAP_PROP_POS_FRAMES, n); video2 >> frame; ASSERT( !frame.empty(), "img2は空です"); img = cv::Mat(frame,rect); return 0;

}

///誤差を計算する関数
int gosa(cv::Point point1,cv::Point point2)
{
int t;
t = (point1.x-point2.x)(point1.x-point2.x)+(point1.y-point2.y)(point1.y-point2.y);

return t;

}

int main(void)
{

// 動画の読み込み cv::VideoCapture video("data/mk/1_4c.avi"); // 動画を書き込み用ファイル cv::VideoWriter writeVideo("data/mk/c_video.avi", -1,30.0,cv::Size(320,568));

以下省略。

### 試したこと

ここに問題に対して試したことを記載してください。
環境変数の設定見直し

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

プレークポイントを小刻みに設定してみていくと、main内のcv::VideoCapture videoの所でエラーが起き、読み込みができていないことは理解したのですが、対処がわかりません。
環境変数でopen cvについては設定済みですし、動画へのパスも間違っていないはずです

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

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

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

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

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

yohhoy

2019/01/28 04:44

入力動画ファイルのパスを相対指定ではなく、絶対パス指定で行ってみてはいかがでしょう?
guest

回答1

0

ベストアンサー

cv::VideoCapture video("data/mk/1_4c.avi");

実行環境はWindowsであると推測しました。
exeファイルを実行する方法はどのように行っていますか?以下のいずれかでしょうか。

  • VisualStudioから実行
  • exeファイルをダブルクリック
  • コマンドプロンプトからコマンドを実行

投稿2019/01/28 04:29

kazto

総合スコア7196

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

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

Kaku-m

2019/01/28 07:19

visualstudioからです。フレームサイズの変更で解決されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問