c++ - 为什么这行不通; opencv Mat_<float>

标签 c++ eclipse opencv pattern-recognition

我似乎无法让它工作。我正在尝试获取图像的像素值,但首先需要更改图像的颜色,但由于我不能使用 int 或 Mat 因为值不是整数,所以我必须使用 <float>因此,当我尝试在 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;

            }
        }
}

最佳答案

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

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

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

关于c++ - 为什么这行不通; opencv Mat_<float>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397939/

相关文章:

c++ - 单个列表中的多个类类型

java - 使用 eclipse 进行 mySql 连接创建基于 Android 的应用程序时遇到问题

java - 如何通过JNI操作CameraPreview bytearray? (开放式简历)

java - 在 OpenCV Java 中实现卡尔曼滤波器

c++ - C++ 中的命令处理器与控制台

c++ - Intel Xeon Phi 卸载代码 + STL vector

c++ - QVariant 转换为基本类型

java - 如何检查哪个库包含 Eclipse 中的特定类

eclipse - 如何关闭 Eclipse/GWT 的 native 方法格式化?

c# - EMGU 2.4.0 BruteForceMatcher KNNMATCH 不工作?