Пример #1
0
void CBATCHDlg::OnBnClickedButtonDetect()
{
	// TODO: 
	CPlateDetect plate;


	for(vector<CString>::size_type v_i = 0; v_i < m_images.size(); ++v_i)
	{	
		vector<Mat> resultVec;
		string str = m_images[v_i].GetBuffer(0);
		Mat src = imread(str, 1);
		int result = plate.plateDetect(src, resultVec);
		if (result == 0)
		{
			int num = resultVec.size();
			for (int j = 0; j < num; j++)
			{
				Mat resultMat = resultVec[j];
				//IplImage pImg = resultMat;
				stringstream ss(stringstream::in | stringstream::out);
				ss << this->m_savepath << "\\" << v_i << "_detect" << j << ".jpg";
				imwrite(ss.str(), resultMat);
			}
		}
	}
}
Пример #2
0
int test_plate_detect()
{
	cout << "test_plate_detect" << endl;

	Mat src = imread(img_plate_detect);

	vector<CPlate> resultVec;
	CPlateDetect pd;
	pd.setPDLifemode(true);

	int result = pd.plateDetectDeep(src, resultVec);
	if (result == 0)
	{
		int num = resultVec.size();
		for (int j = 0; j < num; j++)
		{
			CPlate resultMat = resultVec[j];
			
			imshow("plate_detect", resultMat.getPlateMat());
			waitKey(0);
		}
		destroyWindow("plate_detect");
	}

	return result;
}
Пример #3
0
int test_plate_detect()
{
    cout << "test_plate_detect" << endl;

    Mat src = imread("image/plate_detect.jpg");
    //Mat src = imread("image/baidu_image/test1.jpg");

    vector<Mat> resultVec;
    CPlateDetect pd;
    pd.setPDLifemode(true);

    int result = pd.plateDetectDeep(src, resultVec);
    if (result == 0)
    {
        int num = resultVec.size();
        for (int j = 0; j < num; j++)
        {
            Mat resultMat = resultVec[j];
            imshow("plate_detect", resultMat);
            waitKey(0);
        }
        destroyWindow("plate_detect");
    }

    return result;
}
Пример #4
0
int test_chars_segment()
{
	cout << "test_chars_segment" << endl;

	Mat src = imread(img_chars_segment);

	vector<CPlate> resultVec;

	CPlateDetect pd;
	CCharsSegment cs;
	pd.setPDLifemode(true);

	int result = pd.plateDetectDeep(src, resultVec);
	if (result == 0)
	{
		int num = resultVec.size();
		for (int j = 0; j < num; j++)
		{
			CPlate plate = resultVec[j];

			imshow("plate_detect", plate.getPlateMat());
			waitKey(0);

			vector<Mat> resultChars;

			int result_cs = cs.charsSegment(plate.getPlateMat(), resultChars);
			if (result_cs == 0)
			{
				int num_cs = resultChars.size();
				for (int p = 0; p < num_cs; p++)
				{
					Mat resultChar = resultChars[p];
					imshow("chars_segment", resultChar);
					waitKey(0);
				}
				destroyWindow("chars_segment");
			}

		}
		destroyWindow("plate_detect");
	}

	return result;
}
Пример #5
0
int test_plate_detect()
{
	cout << "test_plate_detect" << endl;

	Mat src = imread("image/plate_detect.jpg");

	vector<Mat> resultVec;
	CPlateDetect pd;

	int result = pd.plateDetect(src, resultVec);
	if (result == 0)
	{
		int num = resultVec.size();
		for (int j = 0; j < num; j++)
		{
			Mat resultMat = resultVec[j];
			imshow("plate_detect", resultMat);
			waitKey(0);
		}
	}

	return result;
}
Пример #6
0
int plate_detect_main(vector<Mat>& resultDT){
	cout << "process plate_detect_main...";

	Mat src = imread(NATIVE_RECG_PATH+"/test.jpg");

	CPlateDetect plate;
	plate.setPDDebug(OPTION_DEBUG);
	plate.setPDLifemode(OPTION_LIFEMODE);

	int result = plate.plateDetectDeep(src, resultDT);
	if (result == 0)
	{
		int num = resultDT.size();
		for (int j = 0; j < num; j++)
		{
			Mat resultMat = resultDT[j];
			show_dialog(resultMat);
		}
		cout << "OK";
	}

	cout << endl;
	return result;
}
Пример #7
0
		int test_plate_detect(const char*path) 
		{
			cout << "test_plate_detect" << endl;
			char* chCurPath = getcwd(NULL, 0);
			vector<cv::Mat> matVec;
			vector<cv::Mat> resultVec;
			CPlateLocate plate;

			vector<string> fileVec;
			cv::Mat src;
			fileVec = BrowseFilenamesOneLayer(path, "*.jpg");

			_chdir(chCurPath);
			cout << fileVec.size() << endl;
			double fScale = 1;
			for (int i = 0; i < fileVec.size(); i++)
			{
				string fileName = fileVec[i];
				cout << "fileName=" << fileName << endl;

				cv::Mat src = imread(fileName);
				int rows = src.rows * fScale;
				int cols = src.cols * fScale;

				cv::Mat dst;
				scaleIntervalSampling(src, dst, fScale, fScale);
				vector<CPlate> resultVec;
				CPlateDetect pd;
				pd.setPDLifemode(true);
				//pd.setDetectShow(true);

				pd.setDetectType(PR_DETECT_COLOR|PR_DETECT_CMSER );
				int result = pd.plateDetect(dst, resultVec);

				int pos;
				string realName;
				pos = fileName.find_last_of('/');
				realName = fileName.substr(pos + 1);
				if (result == 0)
				{
					size_t num = resultVec.size();
					for (size_t j = 0; j < num; j++)
					{
						CPlate resultMat = resultVec[j];
						ostringstream os;
						char a[10];
						itoa(j, a, 10);
						
						os << "resources/image/general_test_prLast2/"<<realName<<"_" << a << ".jpg";
						cout << "tarName="<<os.str() << endl;
						imwrite(os.str(), resultMat.getPlateMat());
						//imshow("plate_detect", resultMat.getPlateMat());
						//waitKey(0);
					}
				}
				else
					cout << "Detect failed!" << endl;
					//destroyWindow("plate_detect");
			}
				return 0;
		}