模糊3D cv :: Mat1f的飞机

时间:2013-03-21 07:02:29

标签: opencv

我创建了用于计算直方图的三维矩阵,如下所示:

// Histogram of HSV image
int const hue_bins = 180; //
int const sat_bins = 256; //
int const val_bins = 4;   // Only four bins for V channel!
float const hue_range[2] = {0, 180};
float const sat_range[2] = {0, 256};
float const val_range[2] = {0, 256};
int const hsv_sizes[] = {hue_bins, sat_bins, val_bins};
cv::Mat1f m_tone_frequences(3, hsv_sizes, 0.);

然后我正在使用

cv::calcHist
    ( &image, 1, channels, mask, histogram
    , num_channels, hsv_sizes, ranges);
...
cv::calcBackProject
    ( &image_f, 1, channels, histogram
    , backproject, hsv_sizes, 1.0);

似乎工作正常(代码简化)。

由于直方图是从单个图像中采样的,因此可能会遇到采样问题(感兴趣的对象具有窄的颜色分布)。所以我想将高斯平滑应用于“值”直方图平面。 我试过得到直方图行,但它给了我一个三维Mat:

cv::Mat1f hrow = histogram.row(0); 
// hrow.dims ==3 && hrow.rows == -1 && hrow.cols == -1

我对处理它没有任何想法。

我无法解决这个问题,因为这个动作应该很简单。

非常感谢任何建议。

0 个答案:

没有答案