Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用OpenCV转换图像_C++_Opencv - Fatal编程技术网

C++ 使用OpenCV转换图像

C++ 使用OpenCV转换图像,c++,opencv,C++,Opencv,我刚开始使用OpenCV,我正在测试它,试图从汽车上抓取牌照。我被困在如何着手做那件事上了。例如,我将从如下图像开始: 我希望我的最终结果是: 我知道如何使用adaptivethreshold,我在步骤中感到困惑的事情需要从1到2。谢谢你的帮助 硬编码阈值太多,但这是否有效 #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" using namespace cv; int main( in

我刚开始使用OpenCV,我正在测试它,试图从汽车上抓取牌照。我被困在如何着手做那件事上了。例如,我将从如下图像开始:

我希望我的最终结果是:


我知道如何使用adaptivethreshold,我在步骤中感到困惑的事情需要从1到2。谢谢你的帮助

硬编码阈值太多,但这是否有效

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;

int main( int argc, char** argv )
{
    Mat src = imread( "C:/test/single/license.jpg");
    cvtColor(src,src,CV_BGR2GRAY);

    blur( src, src, Size(3,3) );
    Canny( src, src, 130, 130*4, 3 );
    imshow( "edge", src );

    GaussianBlur(src,src,Size(3,3),60);
    threshold(src,src,0,255,CV_THRESH_OTSU);

    vector<vector<Point> > contours;
    vector<Vec4i> hierarchy;
    findContours(src, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
    Mat todraw=Mat::zeros(src.size(), CV_8UC1);
    for(size_t i = 0; i < contours.size(); i++)
    {     
        double area = fabs(contourArea(Mat(contours[i])));
        if(area<600)
            drawContours(todraw,contours,i,Scalar(255),-1);
    }
    imshow( "plate", todraw );
    waitKey(0);
    return 0;
}    

#包括“opencv2/imgproc/imgproc.hpp”
#包括“opencv2/highgui/highgui.hpp”
使用名称空间cv;
int main(int argc,字符**argv)
{
Mat src=imread(“C:/test/single/license.jpg”);
CVT颜色(src、src、CV_bgr2灰色);
模糊(src,src,大小(3,3));
Canny(src,src,130130*4,3);
imshow(“边缘”,src);
GaussianBlur(src,src,大小(3,3),60);
阈值(src、src、0255、CV_THRESH_OTSU);
矢量等值线;
向量层次;
findContours(src、等高线、层次结构、CV_RETR_外部、CV_链_近似_简单);
Mat todraw=Mat::zeros(src.size(),CV_8UC1);
对于(size_t i=0;i如果(区域这正是您想要的-


这本书出自《精通OpenCV》一书。它将车牌分割,并使用基本的OCR识别字符。

你是如何得到这个结果的?