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

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

ただいまの
回答率

88.63%

opencv3でfindContours等があいまいです

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,720
退会済みユーザー

退会済みユーザー

本(図書名は失念しましたが「Number Plate Recognition using SVM and Neural Network」という章のもの)に載っていたナンバープレート認識プログラムを動かそうと思い写しましたが、載っていない部分(includeやカメラからの画像読み込みの為のコード等)が分からず自分なりに調べて付け加えた結果エラーがたくさん出ている状態です。

他のサンプルコードは動き、パスの設定も正しいと思います。
C++もopencvも初心者のため教えて頂けたら嬉しいです。

以下の「//convert image to gray」からが本に書いてあったもので章の終わりまでの分を全てとりあえず写しました。

コード

#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>    //Mat等?
#include<opencv2/dnn/dnn.hpp>
#include<opencv2/ml.hpp>
#include<opencv2/highgui.hpp>
#include<vector>
#include<stdio.h>
#include<string.h>



using namespace std;
using namespace cv;





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


    CvCapture* src;                    // ビデオキャプチャ宣言
    IplImage *frame;                // 画像リソース宣言


    src = cvCaptureFromCAM(0);            // 映像取得(カメラ映像)
    if (src == NULL) { printf("映像が取得できません。\n"); cvWaitKey(0); return -1; }
    while (1) {
        frame = cvQueryFrame(src); if (frame == NULL) break; 
        cvReleaseImage(&frame);
        Mat input;

        //convert image to gray(以下本に記載されているコード)

        Mat img_gray;
        cv::cvtColor(input, img_gray, CV_BGR2GRAY);
        cv::blur(img_gray, img_gray, Size(5, 5));

        void Sobel(InputArray src, OutputArray dst, int ddepth, int xorder, int yorder, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFFAULT);

        //Find vertical lines. Car plates have high density of vertical lines

        Mat img_sobel;
        Sobel(img_gray, img_sobel, CV_8U, 1, 0, 3, 1, 0);

        //threshold image
        Mat img_threshold;
        cv::threshold(img_sobel, img_threshold, 0, 255, CV_THRESH_OTSU + CV_THRESH_BINARY);

        Mat element = cv::getStructuringElement(MORPH_RECT, Size(17, 3));
        morphologyEx(img_threshold, img_threshold, CV_MOP_CLOSE, element);

        //Find contours of possibles plates
        vector<vector<Point>> contours;
        findContours(img_threshold, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);

エラー

識別子 "VERTICAL" が定義されていません
"verifySizes" が定義されていません
識別子 "TrainData" が定義されていません
識別子 "SVM" が定義されていません
識別子 "ROW_SAMPLE" が定義されていません
識別子 "ROW_SAMPLE" が定義されていません
識別子 "resultResized" が定義されていません
識別子 "ProjectedHistgram" が定義されていません
識別子 "pointsInterest" が定義されていません
識別子 "Plate" が定義されていません
識別子 "plate" が定義されていません
識別子 "ocr" が定義されていません
識別子 "numCharacters" が定義されていません
識別子 "mask" が定義されていません    
識別子 "mask" が定義されていません    
識別子 "input_image" が定義されていません
識別子 "input_image" が定義されていません
識別子 "input" が定義されていません
識別子 "HORIZONTAL" が定義されていません    
識別子 "BORDER_DEFFAULT" が定義されていません
識別子 "ann" が定義されていません    
識別子 "ann" が定義されていません
数字の必要とされる末尾の後に余分なテキストがあります    
式にはクラス型が必要です    
式が必要です    
宣言が必要です    
.
型名は使用できません
名前の後に '::~' を付けることができるのはクラス名または名前空間名だけです
.
パラメーター "TrainData" は型の名前ではありません
オーバーロードされた関数 "data" のどのインスタンスが対象であるかを特定できません
この宣言にはストレージ クラスまたは型指定子がありません
.
この定数式には、必要な型 "unsigned int" ではなく型 "const char *" が指定されています    
class "cv::Mat_<uchar>" にメンバー "LineIterator" がありません
class "cv::Mat" にメンバー "seros" がありません
';' が必要です
.
')' が必要です
.

"findContours" があいまいです
"end" があいまいです
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • tiitoi

    2018/11/16 16:35

    エラーが出ている箇所が記載されたコードの外の話なので、質問欄の情報から回答するのは無理です。コンパイルエラーが起きている箇所をまずは確認してみてはどうでしょうか。

    キャンセル

まだ回答がついていません

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

  • ただいまの回答率 88.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る