作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 OpenCV 的 C++ 接口(interface)中,检查图像的类型似乎很容易。如果你有一个图像cv::Mat img = cv::imread("someImage.xyz")
,你只需要int theType = img.type()
。
但是,正如您所料,调用 img.type()
只会给出一个整数,而不是枚举名称(例如 CV_32FC1
)。
如果我知道 OpenCV 枚举的整数值,是否有一种简单的方法可以打印出枚举名称(例如 CV_32FC1
)?
最佳答案
据我所知,OpenCV 中不存在这样的功能。
我认为你最好编写自己的函数来获得这些。很多开关盒,但我想它可以完成工作。枚举可以找到here .
编辑:
这是你可以用来提取类型的东西。我猜可能有一种更有效的方法,但我现在无法理解它。
std::string getImageType(int number)
{
// find type
int imgTypeInt = number%8;
std::string imgTypeString;
switch (imgTypeInt)
{
case 0:
imgTypeString = "8U";
break;
case 1:
imgTypeString = "8S";
break;
case 2:
imgTypeString = "16U";
break;
case 3:
imgTypeString = "16S";
break;
case 4:
imgTypeString = "32S";
break;
case 5:
imgTypeString = "32F";
break;
case 6:
imgTypeString = "64F";
break;
default:
break;
}
// find channel
int channel = (number/8) + 1;
std::stringstream type;
type<<"CV_"<<imgTypeString<<"C"<<channel;
return type.str();
}
关于c++ - 获取 OpenCV 图像类型的枚举名称(例如 CV_32FC1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12335663/
我对函数的 OpenCV CV_* 常量有一些烦人的问题。我知道 OpenCV 最近摆脱了很多常量的 CV_,但是我找不到任何更新的文档。并且所有退出它的文档仍然显示旧常量。 例如,CV_BGR2GR
我是一名优秀的程序员,十分优秀!