如何使用OpenCV逐渐减轻图像的下边框?

问题描述 投票:0回答:1

例如,我有一个1000行的图像。第900行应该看起来像原始的。我有一个alpha和beta我想在第1000行到第100行,第950行到第50行,第925行到第25%。换句话说:我想将图像的低10%与线性渐变混合。 OpenCV中是否存在通用方法,无需修改每个离散像素,也无需先生成与原始尺寸相同的Mat?

我在C#中使用OpenCVSharp包装器。

opencv opencvsharp
1个回答
2
投票

在C ++上的实现:

cv::Mat img = cv::imread("lena.jpg");

int startBlend = 3 * img.rows / 4;
double alpha = 1.0;
double step = 1.0 / (img.rows - startBlend);
for (int y = startBlend; y < img.rows; ++y)
{
    img.row(y) *= alpha;
    alpha -= step;
}

cv::imshow("img", img);
cv::waitKey(0);

结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.