#include "perf_cpu_precomp.hpp" using namespace std; using namespace cv; using namespace cv::gpu; void fill(Mat& m, double a, double b) { RNG rng(123456789); rng.fill(m, RNG::UNIFORM, a, b); } void PrintTo(const CvtColorInfo& info, ostream* os) { static const char* str[] = { "BGR2BGRA", "BGRA2BGR", "BGR2RGBA", "RGBA2BGR", "BGR2RGB", "BGRA2RGBA", "BGR2GRAY", "RGB2GRAY", "GRAY2BGR", "GRAY2BGRA", "BGRA2GRAY", "RGBA2GRAY", "BGR2BGR565", "RGB2BGR565", "BGR5652BGR", "BGR5652RGB", "BGRA2BGR565", "RGBA2BGR565", "BGR5652BGRA", "BGR5652RGBA", "GRAY2BGR565", "BGR5652GRAY", "BGR2BGR555", "RGB2BGR555", "BGR5552BGR", "BGR5552RGB", "BGRA2BGR555", "RGBA2BGR555", "BGR5552BGRA", "BGR5552RGBA", "GRAY2BGR555", "BGR5552GRAY", "BGR2XYZ", "RGB2XYZ", "XYZ2BGR", "XYZ2RGB", "BGR2YCrCb", "RGB2YCrCb", "YCrCb2BGR", "YCrCb2RGB", "BGR2HSV", "RGB2HSV", "", "", "BGR2Lab", "RGB2Lab", "BayerBG2BGR", "BayerGB2BGR", "BayerRG2BGR", "BayerGR2BGR", "BGR2Luv", "RGB2Luv", "BGR2HLS", "RGB2HLS", "HSV2BGR", "HSV2RGB", "Lab2BGR", "Lab2RGB", "Luv2BGR", "Luv2RGB", "HLS2BGR", "HLS2RGB", "BayerBG2BGR_VNG", "BayerGB2BGR_VNG", "BayerRG2BGR_VNG", "BayerGR2BGR_VNG", "BGR2HSV_FULL", "RGB2HSV_FULL", "BGR2HLS_FULL", "RGB2HLS_FULL", "HSV2BGR_FULL", "HSV2RGB_FULL", "HLS2BGR_FULL", "HLS2RGB_FULL", "LBGR2Lab", "LRGB2Lab", "LBGR2Luv", "LRGB2Luv", "Lab2LBGR", "Lab2LRGB", "Luv2LBGR", "Luv2LRGB", "BGR2YUV", "RGB2YUV", "YUV2BGR", "YUV2RGB", "BayerBG2GRAY", "BayerGB2GRAY", "BayerRG2GRAY", "BayerGR2GRAY", //YUV 4:2:0 formats family "YUV2RGB_NV12", "YUV2BGR_NV12", "YUV2RGB_NV21", "YUV2BGR_NV21", "YUV2RGBA_NV12", "YUV2BGRA_NV12", "YUV2RGBA_NV21", "YUV2BGRA_NV21", "YUV2RGB_YV12", "YUV2BGR_YV12", "YUV2RGB_IYUV", "YUV2BGR_IYUV", "YUV2RGBA_YV12", "YUV2BGRA_YV12", "YUV2RGBA_IYUV", "YUV2BGRA_IYUV", "YUV2GRAY_420", //YUV 4:2:2 formats family "YUV2RGB_UYVY", "YUV2BGR_UYVY", "YUV2RGB_VYUY", "YUV2BGR_VYUY", "YUV2RGBA_UYVY", "YUV2BGRA_UYVY", "YUV2RGBA_VYUY", "YUV2BGRA_VYUY", "YUV2RGB_YUY2", "YUV2BGR_YUY2", "YUV2RGB_YVYU", "YUV2BGR_YVYU", "YUV2RGBA_YUY2", "YUV2BGRA_YUY2", "YUV2RGBA_YVYU", "YUV2BGRA_YVYU", "YUV2GRAY_UYVY", "YUV2GRAY_YUY2", // alpha premultiplication "RGBA2mRGBA", "mRGBA2RGBA", "COLORCVT_MAX" }; *os << str[info.code]; } void cv::gpu::PrintTo(const DeviceInfo& info, ostream* os) { *os << info.name(); } Mat readImage(const string& fileName, int flags) { return imread(perf::TestBase::getDataPath(fileName), flags); } const vector& devices() { static vector devs; static bool first = true; if (first) { int deviceCount = getCudaEnabledDeviceCount(); devs.reserve(deviceCount); for (int i = 0; i < deviceCount; ++i) { DeviceInfo info(i); if (info.isCompatible()) devs.push_back(info); } first = false; } return devs; }