void compare(const std::vector<cv::Point>& locations) { // skip block_hists check int rows, cols; f.read((char*)&rows, sizeof(rows)); f.read((char*)&cols, sizeof(cols)); for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { float val; f.read((char*)&val, sizeof(val)); } } int nlocations; f.read((char*)&nlocations, sizeof(nlocations)); ASSERT_EQ(nlocations, static_cast<int>(locations.size())); for (int i = 0; i < nlocations; ++i) { cv::Point location; f.read((char*)&location, sizeof(location)); ASSERT_EQ(location, locations[i]); } }
void compare(const cv::Mat& blockHists, const std::vector<cv::Point>& locations) { int rows, cols; f.read((char*)&rows, sizeof(rows)); f.read((char*)&cols, sizeof(cols)); ASSERT_EQ(rows, blockHists.rows); ASSERT_EQ(cols, blockHists.cols); for (int i = 0; i < blockHists.rows; ++i) { for (int j = 0; j < blockHists.cols; ++j) { float val; f.read((char*)&val, sizeof(val)); ASSERT_NEAR(val, blockHists.at<float>(i, j), 1e-3); } } int nlocations; f.read((char*)&nlocations, sizeof(nlocations)); ASSERT_EQ(nlocations, static_cast<int>(locations.size())); for (int i = 0; i < nlocations; ++i) { cv::Point location; f.read((char*)&location, sizeof(location)); ASSERT_EQ(location, locations[i]); } }