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

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

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

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

Visual Studio

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

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

OpenCV

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

Q&A

解決済

3回答

6468閲覧

OpenCv3 PC環境の違いでエラーが発生する?

dodo-taka

総合スコア14

Windows 10

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

Visual Studio

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

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

OpenCV

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

0グッド

0クリップ

投稿2017/06/20 08:23

編集2017/06/20 09:50

###前提・実現したいこと
VC++2013&OpenCv3で画像処理ソフトを作成しています。
開発環境では、問題なく実行できるのですが、
実行環境でエラーが発生します。

■開発環境
・win7 pro sp1 64bit
・vc2013
・Nugetにて、opencv3をインストール (ver3.0.0.1)
・プラットフォーム Win32

■実行環境
・win10 64bit or win7 32bit
・vc2013

###発生している問題・エラーメッセージ
win10のPCに、プロジェクト毎コピーし、Visual Studioでビルド&実行した所、

ハンドルされない例外が 0x5290D4A1 (opencv_core300d.dll) で発生しました(アプリ名.exe 内): 0xC000001D: Illegal Instruction。

main関数に入る前に、上記エラーが発生しました。

win7 32bitのPCでも、同じdll名でエラーが発生しています。

###試したこと
・debug,Releaseモード、いずれもエラー

###補足情報(言語/FW/ツール等のバージョンなど)
イメージ説明

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

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

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

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

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

coco_bauer

2017/06/20 08:41

実行環境には、OpenCv3がインストールされていないのですか?
dodo-taka

2017/06/20 08:43

Nugetにて、opencv3をインストール しており、プロジェクト毎コピーすれば、Visual Studioで実行できると考えているのですが、いけないのでしょうか
guest

回答3

0

ベストアンサー

Unhandled exception at 0x52f9e470 in project1.exe : 0xC000001D : Illegal instruction

Some new SSE instruction are not implemented at AMD processors e.g. So you can fix this by rebuilding opencv without SSE support.

NuGetで導入したバイナリ(.dll類)が、対象マシンのCPUがサポートしていない命令を呼び出している可能性があるようです。この場合はCPUに合わせてソースからビルドの必要があるようです。

追記:ハード寄りの知識はないため、以下、見当違いでしたらすみません。

OpenCV3 3.0.0.1パッケージを導入したのであれば
「~Built only for vc12, with OpenMP, AVX, as DLLs,~」と記載ありますのでAVX命令を使用していると思われます。
また、以下よりAVX命令は第2世代i7/i5以降でのみ対応しているようです。
インテル® SSE およびインテル® AVX 世代 (SSE2、SSE3、SSSE3、ATOM_SSSE3、SSE4.1、SSE4.2、ATOM_SSE4.2、AVX、AVX2、AVX-512) 向けのインテル® コンパイラー・オプションとプロセッサー固有の最適化

以上より、実行環境のCPU(i5)がこれ以前のものである可能性はないでしょうか?

投稿2017/06/20 09:00

編集2017/06/20 10:00
can110

総合スコア38262

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

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

dodo-taka

2017/06/20 09:11

リンク先を読んで見ましたが、AMDプロセッサでエラーが出ている、という風に解釈しました。 今回のCPUは、 ・開発環境 core i7 ・実行環境 core i5 と、intel系になっております。
can110

2017/06/20 09:49

NuGetのOpenCVパッケージ配布先「~Built only for vc12, with OpenMP, AVX, as DLLs,~」と記載あるようですが、これはAVX命令を使用していると思われます。 また、以下よりAVX命令は第2世代i7/i5以降でのみ対応しているようです。 https://www.isus.jp/products/c-compilers/performance-tools-for-software-developers-intel/ 実行環境のCPU(i5)がこれ以前のものである可能性はないでしょうか?
dodo-taka

2017/06/20 09:52

ありがとうございます。 確認してみますが、本日はここまでしか、調査できないため、 明日確認してみます。
can110

2017/06/20 10:01

了解しました。 こちらもCPU命令などの知識はないため、見当はずれの回答でしたらすみません。
dodo-taka

2017/06/21 01:17

CPU確認しました。 開発環境 ・・・ core i7-4510U 実行環境1 ・・・ core i5 650 (win10 64bit) 実行環境2 ・・・ core i5 M480 (win7 32bit)  となっていました。 実行環境は、いずれも第1世代ということで、エラー発生ということでしょうか。 また、上記リンク https://www.isus.jp/products/c-compilers/performance-tools-for-software-developers-intel/ を確認した所、AVX命令には、第2世代i3,5,7・・・と記載がありました。 i7,5だけでなく、i3もOKと判断しても宜しいでしょうか。
can110

2017/06/21 01:36

https://ja.wikipedia.org/wiki/Intel_Core_i5 には型番も載っており 650,480Mどちらも「 AVXは、無効」と記載されています。 私も詳しくないので断定はできませんが、そう考えても宜しいかと思われます。
dodo-taka

2017/06/21 02:16

実行環境3 ・・・ core i3 3240 (win7 32bit) で実行することが出来ました! また、i3 3240は「AVX無効」の記載はなかったので、エラーが出なかったと判断しています。 https://ja.wikipedia.org/wiki/Intel_Core_i3 can110さんの言うとおり、AVX命令の非対応が原因のようですね。 非常に助かりました。 ありがとうございました!
can110

2017/06/21 02:55 編集

OpenCVのようなCPU/GPUパワーを要求するライブラリは、ビルドされたパッケージ(バイナリ)によってはハードにも制約出るようですね。 自分もこれまであまり意識したことがなかったのですが、勉強になりました。
dodo-taka

2017/06/21 06:18

当方opencv初心者でして、OSのbit数や、VSのバージョンは気にしていたのですが、 CPUまでは気が付きませんでした・・・ 現在の対応としては、3.0から2.4にバージョンダウンさせようと思います。 その代わり、ラベリング用のconnectedComponentsWithStats関数が使えなくなるのが痛いです(涙)
guest

0

OpenCV_3_x86_v100とその依存関係のあるパッケージを入れてみたのですが、
実行環境側のPCにVC++2010のランタイムはインストールされてますでしょうか?

別のパッケージならば、また別のバージョンのVCランタイムに依存している可能性があるかもしれません。

イメージ説明

投稿2017/06/20 09:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

dodo-taka

2017/06/20 09:32

>実行環境側のPCにVC++2010のランタイムはインストールされてますでしょうか? こちらインストールしていなかったため、インストールしてみました。 しかし、エラー発生し、状況改善しませんでした。 ランタイムですが、念のため、x86,x64のsp1含めインストールしてみましたが、 変化ありませんでした。
dodo-taka

2017/06/20 09:36

OpenCV_3_x86_v100とありますが、現在使用しているのはVS2013になります。 VS2013ですと、v120だと思うのですが、v100を入れた意図を教えて頂けますか?
退会済みユーザー

退会済みユーザー

2017/06/20 09:46

OpenCV_3で検索したので、キーワードが悪くて出てこなかったようです。 パッケージ名:opencv3 バージョン:3.0.0.1 作成者:itseez で間違いないでしょうか?
dodo-taka

2017/06/20 09:50

はい。(補足に追加しました)
guest

0

■開発環境
・win7 pro sp1 64bit
■実行環境
・win10 64bit or win7 32bit

で、
CPUモード(ソリューションプラットフォーム):AnyCPU でやってたりしませんか?
且つ、参照したDLLが64ビット用になっていませんか?

32bit で動作させたい場合は、
CPUモード:x86(32bit)
参照DLL:とうぜん、x86(32bit)用とします。
全てが、.NET で作成されていて、x86 / x64 の自動判別が上手く動作する場合は、
AnyCPUでもいけますが、外部参照DLLを使う場合は、面倒になりがちですので、
私の場合は、CPUモード(ソリューションプラットフォーム) を、x86 / x64 どちらか指定しています。

追記
ソリューションに、複数プロジェクトが含まれる場合は、
構成マネージャーにて、プラットフォームを統一しておきます。(x86/x64の別)
AnyCPUしか出て来ない場合は、新規で、プラットフォームを追加します。
VB.NET と C# 混在などのミックスドプログラミングの場合は、別途考慮あり。

投稿2017/06/20 08:55

編集2017/06/20 09:02
daive

総合スコア2028

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

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

dodo-taka

2017/06/20 09:07

開発環境のところで記載しておりますが、 ・プラットフォーム Win32 に設定しております。 先程、試しに、nugetでopencv3ではなく、2.4をインストールしてみたところ、 win10 64bitの環境でも実行出来ました。 ただ、opencv3から使用可能な関数は、ビルドエラーがでましたが・・・ (ひとまず、ビルドエラー箇所はコメントアウトで、テスト)
dodo-taka

2017/06/20 09:52

ありがとうございます。 明日、確認してみます。
dodo-taka

2017/06/21 02:19

daiveさん CPUの問題と判断し、上記の確認は見送ろうと思います。 コメント頂きありがとうございました。
daive

2017/06/21 02:46

非常に有用な質問になった御様子、トラブル事例として残しておきます。感謝。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問