2014-09-30 39 views
1

我正在學習使用opencv迭代Mat,正如教程所說,我們可以使用MatIterator_來迭代Mat。對於三通道圖像UCHAR,我們可以如下使用MatIterator_<Vec3b>Opencv如何使用MatIterator迭代彩色圖像與浮動RGB值?

MatIterator_<Vec3b> it, end; 
for(it = I.begin<Vec3b>(), end = I.end<Vec3b>(); it != end; ++it) 
{ 
     //do any iteration stuff 
} 

但我不知道它是否會在3通道浮點值(32FC3)墊工作?

什麼是Vec3b的確切定義?

謝謝!

回答

3

它會工作得很好用Vec3f代替:

MatIterator_<Vec3f> it, end; 
for(it = I.begin<Vec3f>(), end = I.end<Vec3f>(); it != end; ++it) 
{ 
     //do any iteration stuff 
} 

的原因是Vec3fVec3b份額similar structure

typedef Vec<uchar, 3> Vec3b; 
typedef Vec<float, 3> Vec3f; 
相關問題