diff --git a/samples/gpu/softcascade.cpp b/samples/gpu/softcascade.cpp deleted file mode 100644 index e5258aaa6..000000000 --- a/samples/gpu/softcascade.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include -#include -#include -#include -#include - -typedef cv::softcascade::Detection Detection; - -int main(int argc, char** argv) -{ - const std::string keys = - "{help h usage ? | | print this message }" - "{cascade c | | path to configuration xml }" - "{frames f | | path to configuration xml }" - "{min_scale |0.4f | path to configuration xml }" - "{max_scale |5.0f | path to configuration xml }" - "{total_scales |55 | path to configuration xml }" - "{device d |0 | path to configuration xml }" - ; - - cv::CommandLineParser parser(argc, argv, keys); - parser.about("Soft cascade training application."); - - if (parser.has("help")) - { - parser.printMessage(); - return 0; - } - - if (!parser.check()) - { - parser.printErrors(); - return 1; - } - - cv::cuda::setDevice(parser.get("device")); - - std::string cascadePath = parser.get("cascade"); - - cv::FileStorage fs(cascadePath, cv::FileStorage::READ); - if(!fs.isOpened()) - { - std::cout << "Soft Cascade file " << cascadePath << " can't be opened." << std::endl << std::flush; - return 1; - } - - std::cout << "Read cascade from file " << cascadePath << std::endl; - - float minScale = parser.get("min_scale"); - float maxScale = parser.get("max_scale"); - int scales = parser.get("total_scales"); - - using cv::softcascade::SCascade; - SCascade cascade(minScale, maxScale, scales); - - if (!cascade.load(fs.getFirstTopLevelNode())) - { - std::cout << "Soft Cascade can't be parsed." << std::endl << std::flush; - return 1; - } - - std::string frames = parser.get("frames"); - cv::VideoCapture capture(frames); - if(!capture.isOpened()) - { - std::cout << "Frame source " << frames << " can't be opened." << std::endl << std::flush; - return 1; - } - - cv::cuda::GpuMat objects(1, sizeof(Detection) * 10000, CV_8UC1); - cv::cuda::printShortCudaDeviceInfo(parser.get("device")); - for (;;) - { - cv::Mat frame; - if (!capture.read(frame)) - { - std::cout << "Nothing to read. " << std::endl << std::flush; - return 0; - } - - cv::cuda::GpuMat dframe(frame), roi(frame.rows, frame.cols, CV_8UC1); - roi.setTo(cv::Scalar::all(1)); - cascade.detect(dframe, roi, objects); - - cv::Mat dt(objects); - - Detection* dts = ((Detection*)dt.data) + 1; - int* count = dt.ptr(0); - - std::cout << *count << std::endl; - - cv::Mat result; - frame.copyTo(result); - - - for (int i = 0; i < *count; ++i) - { - Detection d = dts[i]; - cv::rectangle(result, cv::Rect(d.x, d.y, d.w, d.h), cv::Scalar(255, 0, 0, 255), 1); - } - - std::cout << "working..." << std::endl; - cv::imshow("Soft Cascade demo", result); - if (27 == cv::waitKey(10)) - break; - } - - return 0; -}