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); } } } }
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; }
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; }