msys2でopenCVが使えない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: msys2でopenCVが使えない

Re: msys2でopenCVが使えない

#35

by Math » 5年前

[ msys2  と VisualSudio Code で クラン( clang )を使う ]

今トレンドのクランを使う。
http://www2.koyoen.birdview.co.jp/~abcx ... 1-aaa-.PNG



WindowsでClangを使うならmsys2が便利

https://qiita.com/tomota-tar-gz/items/7 ... 29eddbee8a

クラン( clang )
https://ja.wikipedia.org/wiki/Clang

Re: msys2でopenCVが使えない

#34

by Math » 5年前

[ Visual Studio Code を使ってみる ]

結果の確認をしてみる。

http://www2.koyoen.birdview.co.jp/~abcx ... -10-a-.PNG

OK。

Re: msys2でopenCVが使えない

#33

by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... -zz-b-.PNG

gcc 7.4.0 がインストールされています。あと ruby などです。

Re: msys2でopenCVが使えない

#32

by Math » 5年前

ついでなので Cygwin  もインストールしてみました。

これで msys2、 Ubuntu(WSL)、 MinGW, Cygwin と 4つ Linux (gcc)
テスト環境がインストール出来ました。

http://www2.koyoen.birdview.co.jp/~abcx ... -zz-a-.PNG

Re: msys2でopenCVが使えない

#31

by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... -z222-.PNG

一度アンインストールしてみたが ここを右クリックすると アンインストール
メニューがでてくるのでクリックするだけで簡単である。

Re: msys2でopenCVが使えない

#30

by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... -23-f-.PNG

大型Computer の入力に使用したVim をインストール

数万行になると vi でなくては!

Re: msys2でopenCVが使えない

#29

by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... -23-d-.PNG

Windows10 同様 update( と upgrade)は日日行わなければならないならないようです。

Re: msys2でopenCVが使えない

#28

by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... 23-z1-.PNG

zsh
gcc 7.3.0
java
をインストールしてみました。

Re: msys2でopenCVが使えない

#27

by Math » 5年前

Window10に Windows Subsystem for Linux 、Ubuntu をインストールしてみました。

http://www2.koyoen.birdview.co.jp/~abcx ... -23-c-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 23-z2-.PNG

Re: msys2でopenCVが使えない

#26

by Math » 5年前

昨年クリスマスに買ったWindows10に msys2

http://www.msys2.org/ を入れてしまったが


https://laboradian.com/win10-msys2/

に ”現在では、Windows 10 に WSL が実装されていますので、特に理由がなければ MSYS2 の代わりに WSL を使う方がよいでしょう”

のような記述があったので以前のPCのように WSL をまた導入してみます。

Re: msys2でopenCVが使えない

#25

by Math » 5年前

了解。良かったですね!コングラチュレーション!

Re: msys2でopenCVが使えない

#24

by keito » 5年前

すみません、自己解決しました!

Makefileのオプションに「-lopencv_imgcodecs401」を付けたらコンパイルできました。

コード:

#Makefile
INC = -I "C:\msys64\mingw64\include\opencv4"
DIR =  -L "C:\msys64\mingw64\bin"
FLAGS = -lopencv_core401 -lopencv_highgui401 -lopencv_imgcodecs401

main:
	clang++ $(INC) $(DIR) test.cpp $(FLAGS)
imreadであらかじめ用意している画像ファイルを読み込むにはopencv_imagecodecs401.dllが必要だったみたいです。
公式リファレンスに必要なdllとかが載ってないの不親切ですね......
pkg-config(さっき存在知った)使えって事でしょうかね......
添付ファイル
Capture1.png

Re: msys2でopenCVが使えない

#23

by Math » 5年前

> #includeファイルを見て予測して書きました。

了解しました。引き続き 分かったら連絡します。

Re: msys2でopenCVが使えない

#22

by keito » 5年前

ああ、すみません、Makefileの引数の話でしたね、test.cppにある関数の引数と間違えました。
コンパイラのオプションまで書いてくれてるサイトが無かったので、#includeファイルを見て予測して書きました。

Re: msys2でopenCVが使えない

#21

by keito » 5年前

cv::imreadの引数は
http://opencv.jp/opencv-2.1/cpp/reading ... video.html
を参考にしています。
Mathさんの環境ではimage.pngを読み込んでウィンドウに表示させるプログラムが動くんでしょうか?

最新のリファレンスも確認しましたが、特に仕様の変更も見られず…

一応パッケージのバージョンを下げて(3.x.x)動くかどうかも確認してみます。
また、pkg-configというのがあるらしいのを知ったのでそれも試してみます。

(VS Code、最初は環境設定とかで戸惑いましたが、低スペックなPCでも快適なのでとても重宝してます。好き)

Re: msys2でopenCVが使えない

#20

by Math » 5年前

Visual Stdio Code を使っているのですね(^^)/

私も使ってみます。

Re: msys2でopenCVが使えない

#19

by Math » 5年前

そうですよね。

keito さんのプログラムが どこで引っかかっているのかがわからないのですよ。

エラーメッセージが不思議なんですね。

OpenCV4のサンプルプログラムを探しているのですが…

( Version 4で大きくかわったみたいですよね! )

***
keitoさんのMakefile はいいようですが 引数などの情報をどうして得たのか教えて頂くとありがたいです。

Re: msys2でopenCVが使えない

#18

by keito » 5年前

引き続き返信してくださりありがとうございます。

提示された2つのソースコードをコピペし実行しました。
コンパイル・リンカエラーは起きませんでした。
添付ファイル
Capture1.png
Capture2.PNG

Re: msys2でopenCVが使えない

#17

by Math » 5年前

test.cpp

コード:

#include <opencv2/core.hpp>

#include <opencv2/highgui.hpp>

#include <iostream>

 

int main(int argc, const char* argv[])

{

  // 幅320px、高さ240pxで赤色の画像データを生成

  cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));




  // 画像表示用のウィンドウを生成

  cv::namedWindow("red", cv::WINDOW_AUTOSIZE);




  // ウィンドウに画像を表示

  cv::imshow("red", redImg);




  // キー入力を待機

  cv::waitKey(0);




  // 作成したウィンドウを全て破棄

  cv::destroyAllWindows();




  return 0;

}
http://www2.koyoen.birdview.co.jp/~abcx ... 03-11-.PNG

Re: msys2でopenCVが使えない

#16

by Math » 5年前

*****************
2018年11月20日


画期的な3.0のリリースから約3年半後、私たちは4.xの最初の安定版リリースを発表できて嬉しいです。

ハイライトをリリース:

• OpenCVは現在C ++ 11ライブラリであり、C ++ 11準拠のコンパイラが必要です。 最低限必要なCMakeのバージョンが3.5.1に引き上げられました。
OpenCV 1.xから多くのC APIが削除されました。
• コアモジュール内の永続性(XML、YAML、またはJSONとの間の構造化データの格納およびロード)は、C ++で完全に再実装され、C APIも失いました
新しいモジュールG-APIが追加されました。これは非常に効率的なグラフベースの画像処理パイプラインのエンジンとして機能します。
• dnnモジュールは、OpenVINO™ツールキットR4のDeep Learning Deployment Toolkitで更新されました。 DLDTをサポートするOpenCVの構築方法と使用方法のガイドを参照してください 。
• dnnモジュールは実験的なVulkanバックエンドを含み、ONNXフォーマットのネットワークをサポートします。
• 一般的なKinect Fusionアルゴリズムは、CPUとGPU(OpenCL)用に実装され最適化されています。
• QRコードディテクタとデコーダがobjdetectモジュールに追加されました
• 非常に効率的でありながら高品質のDIS高密度オプティカルフローアルゴリズムがopencv_contribからビデオモジュールに移動しました。
• 詳細は前回の発表: 4.0-alpha 、 4.0-beta 、 4.0-rcおよび変更履歴にあります。

*****************
に注意してください




まず 初歩的なプログラムから

test.cpp

コード:

#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat image = Mat::zeros(100, 100, CV_8UC3);
    imshow("", image);
    waitKey(0);
}
Makefile はそのまま。

http://www2.koyoen.birdview.co.jp/~abcx ... 03-07-.PNG

Re: msys2でopenCVが使えない

#15

by keito » 5年前

うーん、やはりよく分かりませんでした…
試しにhttp://cvwww.ee.ous.ac.jp/semi/opencv/の1.1サンプルコードや
https://www.buildinsider.net/small/opencv/007の2.1.1サンプルコード
をtest.cppにコピペして試しましたがリンカエラーのままでした。
コンパイラのオプションかPATHの設定が間違っているのでしょうか?

Re: msys2でopenCVが使えない

#14

by keito » 5年前

test.cppの間違いってことですかね?確認してみます。
image.pngは正直なんでも良かったのでゲームのスクショ画像にしてます。
添付ファイル
image.png

Re: msys2でopenCVが使えない

#13

by keito » 5年前

test.cppは↓のサイトを参考にしています。(コンパイルできるかの確認の為不要な部分はごっそり消してますが)
http://www.wakayama-u.ac.jp/~chen/cmake/cmakecv.html

Makefileはサイト探しても見つからなかったので自作です

Re: msys2でopenCVが使えない

#12

by Math » 5年前

keitoさん

サンプルプログラムが おかしく ないですか?

Re: msys2でopenCVが使えない

#11

by Math » 5年前

Re: msys2でopenCVが使えない

#10

by Math » 5年前

あ image.png が ない!

keito さん mage.png ください

Re: msys2でopenCVが使えない

#9

by Math » 5年前

keito さんの通りやると

test.cpp

コード:

// test.cpp
#include <opencv2/highgui.hpp>
using namespace cv;

int main()
{
    Mat img = imread("image.png", 1);
    imshow("image", img);
    waitKey();
    return 0;
}
Makefile

コード:

#Makefile
INC = -I "C:\msys64\mingw64\include\opencv4"
DIR =  -L "C:\msys64\mingw64\bin"
FLAGS = -lopencv_core401 -lopencv_highgui401

main:
	clang++ $(INC) $(DIR) test.cpp $(FLAGS)
http://www2.koyoen.birdview.co.jp/~abcx ... 03-05-.PNG

となります。

keito さんの参考にしたサイトとか教えて下さい・・

Re: msys2でopenCVが使えない

#8

by keito » 5年前

ディレクトリを回答者のものと一緒にしました。
make --helpできました。
添付ファイル
Untitled12.png

Re: msys2でopenCVが使えない

#7

by Math » 5年前

今日は予期せぬ相談が2件あったので解決してのですが頭の動きが鈍くなったようなのでゆっくり検証してみます。
まずワーク・ディレクトリは
http://www2.koyoen.birdview.co.jp/~abcx ... 03-01-.PNG

min64.bat

コード:

set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\local\bin;C:\msys64\usr\bin;C:\msys64\bin;%PATH%
set MSYSTEM=MINGW64
bash
コマンドプロンプトを立ち上げて make の ヘルプをしらべます。

http://www2.koyoen.birdview.co.jp/~abcx ... 03-02-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 03-03-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 03-04-.PNG

Re: msys2でopenCVが使えない

#6

by Math » 5年前

ありがとうございます。インストール出来ました。

明日 1日用があるので 明日夕方見てみます。

http://www2.koyoen.birdview.co.jp/~abcx ... 8-001-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 8-002-.PNG

Re: msys2でopenCVが使えない

#5

by keito » 5年前

#2のスクショが貼れてませんでした…。

念のためロケール設定も書いときます…(以前これの所為だったこともあったので)
・言語/システムロケールは英語[English (United States)]にしています。
・コントロールパネル>地域>システムロケールの変更>「ベータ:ワールドワイド言語サポートでUnicode UTF-8を使用」はオフにしてます。
添付ファイル
Untitled10.png
#2

Re: msys2でopenCVが使えない

#4

by keito » 5年前

Mathさん、返答ありがとうございます。

#2はフォルダの名前やPATHが一部違いますが指定されたとおりに動きました。
#3も動いてます。

openCVはC:\msys64\mingw64.exeで
「pacman -S mingw-w64-x86_64-opencv」と打ってパッケージをインストールしました。多分「依存するパッケージも一緒にダウンロードしますか?」みたいな質問も出てたと思いますが、Yesを選んでたと思います。
添付ファイル
Untitled11.png
#3

Re: msys2でopenCVが使えない

#3

by Math » 5年前

clang++ を試して見ました。

http://www2.koyoen.birdview.co.jp/~abcx ... g-002-.PNG

これが 正常に動作していますか?


それと OpenCVはどの様にしてインストールされましたか?

Re: msys2でopenCVが使えない

#2

by Math » 5年前

今 msys2 を導入し clang を試してみました。

http://www2.koyoen.birdview.co.jp/~abcx ... g-001-.PNG

まず これが正常に動いてますか?

msys2でopenCVが使えない

#1

by keito » 5年前

たびたびお世話になっています。
C/C++/OpenCVの知識はそんなにないです。

msys2にてpacmanでclang++、make、openCV、その他依存パッケージもろもろをインストールしました。
以下のようなソースコードを書いて

コード:

// test.cpp
#include <opencv2/highgui.hpp>
using namespace cv;

int main()
{
    Mat img = imread("image.png", 1);
    imshow("image", img);
    waitKey();
    return 0;
}

コード:

#Makefile
INC = -I "C:\msys64\mingw64\include\opencv4"
DIR =  -L "C:\msys64\mingw64\bin"
FLAGS = -lopencv_core401 -lopencv_highgui401

main:
	clang++ $(INC) $(DIR) test.cpp $(FLAGS)
clang++にてコンパイルしましたが、

コード:

PS C:\Users\(ユーザー名)\Documents\source> make
clang++ -I "C:\msys64\mingw64\include\opencv4" -L "C:\msys64\mingw64\bin" test.cpp -lopencv_core -lopencv_highgui
C:\Users\Hiiragi\AppData\Local\Temp\test-2b4b06.o:(.text+0x57): undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:7: main] Error 1
と出て実行ファイルができませんでした。

他のサイトも調べましたが、よく分からないor試しても解決しませんでした。
分かる方がいたら助けをお願いします。

コード:

PS C:\Users\(ユーザー名)\Documents\source> clang++ -v
clang version 7.0.1 (tags/RELEASE_701/final)
Target: x86_64-w64-windows-gnu
Thread model: posix
InstalledDir: C:\msys64\mingw64\bin
PS C:\Users\(ユーザー名)\Documents\source> make -v
GNU Make 4.2.1
Built for x86_64-pc-msys
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Windows10(64bit)、OpenCVはver4.0.1-1です。

ページトップ