【问题标题】:To perform linear interpolation between two images using lerp使用 lerp 在两个图像之间执行线性插值
【发布时间】:2013-11-08 06:23:37
【问题描述】:

我必须使用 lerp 函数来插入两个图像。帖子How to perform a linear interpolation between to images 推荐了这种方法 dst[x][y].r = lerp(factor, src1[x][y].r, src2[x] [y].r) 但我无法获得所需的结果,因为我使用 [ ,] 括号时出现错误,任何人都可以在 open cv C++ 中提出更好的方法

【问题讨论】:

  • 你能显示你遇到问题的代码吗?该代码看起来不错,但它取决于 dstsrcsrc2 是什么。
  • 我相信,dstsrcsrc2Mats。您无法使用 [x][y] 语法访问 Mat。相当于src1.at<uchar>(y, x)。但是请注意,这仅适用于 CV_8UC1 图像。对于另一种类型,您应该指定 uchar 以外的其他内容

标签: c++ opencv interpolation


【解决方案1】:

假设您需要以下 lerp 函数:

src1*(1-factor)+src2*factor;

在 OpenCV 中可以这样实现:

cv::Mat src1, src2; // These two images have to be the same size and type 
cv::Mat result;
double factor = 0.5; // [0, 1]
cv::addWeighted(src1, 1.0-factor, src2, factor, 0.0, result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多