inline image_format opencv_get_mat_image_format(const cv::Mat &mat) { switch(mat.type()){ case CV_8UC4: return image_format(CL_BGRA, CL_UNORM_INT8); case CV_16UC4: return image_format(CL_BGRA, CL_UNORM_INT16); case CV_32F: return image_format(CL_INTENSITY, CL_FLOAT); case CV_8UC1: return image_format(CL_INTENSITY, CL_UNORM_INT8); default: return image_format(); } }
/// Returns the supported image formats for the context. /// /// \see_opencl_ref{clGetSupportedImageFormats} static std::vector<image_format> get_supported_formats(const context &context, cl_mem_flags flags) { cl_uint count = 0; clGetSupportedImageFormats(context, flags, CL_MEM_OBJECT_IMAGE2D, 0, 0, &count); std::vector<cl_image_format> cl_formats(count); clGetSupportedImageFormats(context, flags, CL_MEM_OBJECT_IMAGE2D, count, &cl_formats[0], 0); std::vector<image_format> formats; for(size_t i = 0; i < count; i++){ formats.push_back(image_format(cl_formats[i])); } return formats; }
inline QImage::Format qt_image_format_to_qimage_format(const image_format &format) { if(format == image_format(image_format::bgra, image_format::unorm_int8)){ return QImage::Format_RGB32; } return QImage::Format_Invalid; }
inline image_format qt_qimage_format_to_image_format(const QImage::Format &format) { if(format == QImage::Format_RGB32){ return image_format(image_format::bgra, image_format::unorm_int8); } BOOST_THROW_EXCEPTION(opencl_error(CL_IMAGE_FORMAT_NOT_SUPPORTED)); }
inline image_format opencv_get_mat_image_format(const cv::Mat &mat) { switch(mat.type()){ case CV_8UC4: return image_format(CL_BGRA, CL_UNORM_INT8); case CV_16UC4: return image_format(CL_BGRA, CL_UNORM_INT16); case CV_32F: return image_format(CL_INTENSITY, CL_FLOAT); case CV_32FC4: return image_format(CL_RGBA, CL_FLOAT); case CV_8UC1: return image_format(CL_INTENSITY, CL_UNORM_INT8); } BOOST_THROW_EXCEPTION(opencl_error(CL_IMAGE_FORMAT_NOT_SUPPORTED)); }
QUrl QcGermanyLayer::url(const QcTileSpec & tile_spec) const { // http://sg.geodatenzentrum.de/wmts_webatlasde/tile/1.0.0/webatlasde/default/DE_EPSG_25832_ADV/3/3/7.png // http://sg.geodatenzentrum.de/wms_dtk200?FORMAT=image%2Fjpeg&TRANSPARENT=FALSE&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&LAYERS=DTK200&SRS=EPSG%3A25832&BBOX=550687.2074199,5679937.1602661,555579.17723015,5684829.1300764&WIDTH=256&HEIGHT=256 return QUrl(QStringLiteral("http://sg.geodatenzentrum.de/wmts_webatlasde/tile/1.0.0/") + name() + QLatin1Char('/') + QLatin1Literal("default/") + QLatin1Literal("DE_EPSG_25832_ADV/") + QString::number(tile_spec.level()) + QLatin1Char('/') + QString::number(tile_spec.x()) + QLatin1Char('/') + QString::number(tile_spec.y()) + QLatin1Char('.') + image_format()); }
/// Returns the format for the image. image_format get_format() const { return image_format(get_info<cl_image_format>(CL_IMAGE_FORMAT)); }