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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

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

C++

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

Q&A

解決済

1回答

549閲覧

opencvとopencv2を同時にインクルードすると意味不明なエラーが出てくる。

ShiiTakumi

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

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

C++

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

0グッド

0クリップ

投稿2018/10/01 04:02

よくわからないエラーにつまずいています。
VisualStudio2017でのエディタに以下のコードで

//OpenCV2以下の2つのヘッダファイルをコメントアウトしてインクルードしないようにすると//--1--以下の行のコードに「名前の後に"::~"とつけることが出来るのはクラス名または名前空間名だけです。」といったエラーが表示されますが、

インクルードすると--1--のエラーは無くなり、--2--以下のコードで「型"IplImage*"の値を型"IplImage*"にのエンティティに割り当てることはできません」という意味不明なエラーが出ております。

このエラー自体が実によくわからないのですが、この場合OpenCVは1,2どちらかひとつに統一しないといけない、ということなのでしょうか。

C/C++

1(略) 2// OpenCV 3#include <cv/cv.h> 4#include <cxcore/cxcore.h> 5#include <highgui.h> 6#include <math.h> 7(略) 8// OpenCV2 9#include <opencv2/opencv.hpp> 10#include <opencv2/core/core.hpp> 11(略) 12//--1-- 13cv::Mat jpgde(512, 512, CV_8UC3); 14(略) 15//--2-- 16frameImage = cvCreateImage(cvSize(WIDTH, HEIGHT), IPL_DEPTH_8U, 3); // キャプチャ画像用IplImage 17hsvImage = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 3); 18// HSV画像用IplImage 19temp = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_8U, 1); // 一時保存用IplImage 20label = cvCreateImage(cvGetSize(frameImage), IPL_DEPTH_16S, 1); // ラベル結果保存用IplImage 21(略)

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

OpenCV の古い API は互換性のために残されているだけなので、今から開発するなら #include <opencv2/opencv.hpp> ヘッダを使いましょう。
現在の API では画像は IplImage でなく、cv::Mat で扱います。

記載されたコードを書き直すと、以下のようになります。

cpp

1#include <opencv2/opencv.hpp> // 基本的にこのヘッダーだけでよい。 2 3cv::Mat jpgde(512, 512, CV_8UC3); 4 5cv::Mat frameImage(cv::Size(WIDTH, HEIGHT), CV_8UC3); 6cv::Mat temp(frameImage.size(), CV_8UC1); 7cv::Mat label(frameImage.size(), CV_32SC1);

まず cv::Mat について、こちら で勉強してみてください。

投稿2018/10/01 09:01

tiitoi

総合スコア21956

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

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

ShiiTakumi

2018/10/02 06:18

ありがとうございます! ちょうどOpenCV2関連の著書を読んでており、理解出来ました! 今後は2に統一しようと思います。 また勉強になるサイトの紹介をありがとうございますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問