arma::fvec HsvExtractor::extract(const cv::Mat& image, bool normalize, cv::OutputArray& qimage) const { cv::Mat hsv = toHsv(image); cv::Mat quantized = quantize(hsv, hsvlevels); if (medfilt) { quantized = medfilt2(quantized); } BOOST_ASSERT(quantized.size() == image.size()); if (qimage.needed()) { cv::Mat render = toBgr(quantized, hsvlevels); render.copyTo(qimage); } return computeHistogram<float>(quantized, levels, normalize); }
vp::SDFNode::TraceOptions to; to.maxIter = 1000; to.stepFact = vp::Scalar(0.9); r->setPrimaryTraceOptions(to); vpr::HeatImageGeneratorPtr heat(new vpr::HeatImageGenerator()); r->addImageGenerator(heat); vpr::DepthImageGeneratorPtr depth(new vpr::DepthImageGenerator()); r->addImageGenerator(depth); vpr::BlinnPhongImageGeneratorPtr phong(new vpr::BlinnPhongImageGenerator()); phong->setAntialiasingEnabled(true); r->addImageGenerator(phong); r->render(); cv::Mat depthImage, depthImageFloat; depthImageFloat = depth->image()->toOpenCV(); double minDepth, maxDepth; cv::minMaxLoc(depthImageFloat, &minDepth, &maxDepth); depthImageFloat.convertTo(depthImage, CV_8UC1, 255 / maxDepth); cv::imshow("Heat Image", heat->image()->toOpenCV()); cv::imshow("Depth Image",depthImage); cv::imshow("Blinn Phong Image",toBgr(phong->image()->toOpenCV())); cv::waitKey(); }