【问题标题】:Why won't this work; opencv Mat_<float>为什么这行不通; opencv Mat_<浮点数>
【发布时间】:2012-07-09 00:31:37
【问题描述】:

我似乎无法让它工作。我正在尝试获取图像的像素值,但首先需要更改图像的颜色,但是由于值不是整数,所以我不能使用 int 或只是 Mat,我必须使用 &lt;float&gt; 并且因为当我尝试在 cmd 上运行它时会弹出错误。

int main(int argc, char **argv)
{

    Mat img = imread(argv[1]);
    ofstream myfile;

    Mat_<float> MatBlue = img;
        int rows1 = MatBlue.rows;
        int cols1 = MatBlue.cols;
        for(int x = 0; x < cols1; x++) {
            for(int y = 0; y < rows1; y++) {
                float val = MatBlue.at<cv::Vec3b>(y, x)[1];
                MatBlue.at<cv::Vec3b>(y, x)[0] = val + 1;

            }
        }
}

【问题讨论】:

    标签: c++ eclipse opencv pattern-recognition


    【解决方案1】:

    要实现您的目标,即类型转换,请使用cv::Mat::convertTo

    示例:img.convertTo(MatBlue, CV_32F)img.convertTo(MatBlue, CV_32F, 1.0/255.0)(使值在 0 和 1 之间标准化)。

    您在代码中混合了 char 和 float 指针类型。

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      相关资源
      最近更新 更多