2015-07-01 18 views
-1

这可能是一个非常基本的问题,但我对此很困惑。typedef openCV的大小()

我可以初始化使用下面的代码行尺寸的图像(3266 X 2450):

Mat image( Size(3266, 2450) , CV_8UC3 ); 

,但我需要做一些测试在几个不同类型的图像所以,我希望做一个typedef

我需要有一个typedef声明,它可以提供不同的大小...像下面这样的东西,但即使搜索后,我找不到正确的语法。

typedef cv::Size(2048, 1536) 3MP 
typedef cv::Size(2464, 1632) 4MP 
typedef cv::Size(3266, 2450) 8MP 

重要:如果typedef是不是一个解决方案。请建议可能是什么可能的解决方案使用类似下面针对不同的图像:

Mat image( 8MP , CV_8UC3 ); 
+3

标识符不能以数字开头。为什么typedef虽然,这些不只是价值观? – Mat

+0

改为使用#define。 –

+0

要将其与'typedef'一起使用,请创建一个小型模板包装器,将大小值作为模板参数。 –

回答

5

因为Size本身就是一个类型,Size(x, y)产生一个值,而不是一个类型不能使用typedef这里。改用常数:

const cv::Size SIZE_3MP(2048, 1536); 
const cv::Size SIZE_4MP(2464, 1632); 
const cv::Size SIZE_8MP(3266, 2450); 
+0

谢谢,它的工作。我会在几分钟内接受答案。 – skm