static void rgb2whs(const cv::Mat &src, cv::Mat &dst, const int nProjections, const int psize) { CV_Assert(nProjections <= psize*psize && src.type() == CV_32FC1); const int npsize = rp2(psize); std::vector <cv::Mat> projections; cv::Mat img, proj; cv::copyMakeBorder(src, img, npsize, npsize, npsize, npsize, cv::BORDER_CONSTANT, 0); cv::boxFilter(img, proj, CV_32F, cv::Size(npsize, npsize), cv::Point(-1, -1), true, cv::BORDER_REFLECT); projections.push_back(proj); std::vector <cv::Point2i> snake_idx; generate_snake(std::back_inserter(snake_idx), nProjections); for (int i = 1; i < nProjections; ++i) nextProjection(projections, snake_idx[i - 1], snake_idx[i], npsize); int pad = 0; cv::merge(projections, img); img(cv::Rect(npsize + pad, npsize + pad, src.cols - pad, src.rows - pad)).copyTo(dst); }
void run() { ReplPair rp1( "a", "-" ); rp1.arbitrate(); ASSERT( rp1.state == ReplPair::State_Master ); TestableReplPair rp2( false, BSONObj() ); rp2.arbitrate(); ASSERT( rp2.state == ReplPair::State_CantArb ); TestableReplPair rp3( true, fromjson( "{ok:0}" ) ); rp3.arbitrate(); ASSERT_EQUALS( rp3.state , ReplPair::State_Confused ); TestableReplPair rp4( true, fromjson( "{ok:1,you_are:1}" ) ); rp4.arbitrate(); ASSERT( rp4.state == ReplPair::State_Master ); TestableReplPair rp5( true, fromjson( "{ok:1,you_are:0}" ) ); rp5.arbitrate(); ASSERT( rp5.state == ReplPair::State_Slave ); TestableReplPair rp6( true, fromjson( "{ok:1,you_are:-1}" ) ); rp6.arbitrate(); // unchanged from initial value ASSERT( rp6.state == ReplPair::State_Negotiating ); }
void run() { ReplPair rp1( "foo", "bar" ); checkFields( rp1, "foo", "foo", CmdLine::DefaultDBPort, "bar" ); ReplPair rp2( "foo:1", "bar" ); checkFields( rp2, "foo:1", "foo", 1, "bar" ); // FIXME Should we accept this input? ReplPair rp3( "", "bar" ); checkFields( rp3, "", "", CmdLine::DefaultDBPort, "bar" ); ASSERT_EXCEPTION( ReplPair( "foo:", "bar" ), UserException ); ASSERT_EXCEPTION( ReplPair( "foo:0", "bar" ), UserException ); ASSERT_EXCEPTION( ReplPair( "foo:10000000", "bar" ), UserException ); ASSERT_EXCEPTION( ReplPair( "foo", "" ), UserException ); }