gpt4 book ai didi

OpenCV - 使用 warpAffine 旋转时图像变得模糊

转载 作者:太空宇宙 更新时间:2023-11-03 20:51:26 25 4
gpt4 key购买 nike

我正在使用 openCv 的 warpAffine() 函数通过这段代码旋转图像-

void rotateImage(const Mat &src, Mat &dest, double angle)
{
cv::Point2f point(src.cols/2, src.rows/2);

Mat rotationMatrix = cv::getRotationMatrix2D(point, angle, 1.0);

cv::warpAffine(src, dest, rotationMatrix, cv::Size(src.cols, src.rows));
}

如果我以 90 的某个角度倍数(以度为单位)旋转图像,效果很好,但以任意旋转角度严重模糊图像。

例如-原图

enter image description here

多次旋转90度后-

enter image description here

多次旋转30度后-

enter image description here

那么有什么方法可以将图像旋转任意角度并避免造成模糊?

最佳答案

您可以尝试使用标志选项来查看不同插值方法的结果:

INTER_NEAREST - 最近邻插值

INTER_LINEAR - 双线性插值(默认)

INTER_AREA - 使用像素区域关系重新采样。它可能是图像抽取的首选方法,因为它可以提供无摩尔纹的结果。但是当图像缩放时,它类似于INTER_NEAREST方法。

INTER_CUBIC - 4x4 像素邻域的双三次插值

INTER_LANCZOS4 - 8x8 像素邻域上的 Lanczos 插值

例如:

cv::warpAffine(src, dest, rotationMatrix, cv::Size(src.cols, src.rows),cv::INTER_CUBIC);

不过,由于插值,您总会损失一些质量。最好不要对同一图像依次进行多次变形。

关于OpenCV - 使用 warpAffine 旋转时图像变得模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com