首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么OpenCV的polarWarp在一些图像中引入了伪像?

为什么OpenCV的polarWarp在一些图像中引入了伪像?
EN

Stack Overflow用户
提问于 2021-01-14 23:36:54
回答 1查看 62关注 0票数 0

我有一些小的(通常约为60x60或更少)的BGR图像,我正在使用OpenCV的warpPolar为它们生成极点投影。大多数情况下,它工作得很好,但偶尔我会得到一张图像(来自与工作正常的图像相同的摄像头来源),其中有分散的伪像。三种不同的插值方法都会产生瑕疵。我确实发现增加极点半径可以消除伪影,但有人能解释一下为什么这会有所不同吗?

下面是表示对warpPolar调用的代码:

代码语言:javascript
运行
复制
Mat m = imread( "image.png", IMREAD_COLOR);
Moments mom = moments( m);
int len = //... semi-major axis*2 for ellipse fit
warpPolar( m, polar, Size(), Point( mom.m10/mom.m00, mom.m01/mom.m00) , len, INTER_LINEAR);

这是一张工作正常的图像:

--warpPolar-->

下面是一张图像,它分别使用最近点、线性和LANCZOS4,产生了大约四分之一的彩虹伪影和底部的灰色条带:

--warpPolar->

...and,那么半径更大...

EN

回答 1

Stack Overflow用户

发布于 2021-01-15 09:12:38

这个问题的答案是,warpPolar( )调用需要一个额外的标志来指定如何填充源图像外部的像素。这就解决了这个问题:

代码语言:javascript
运行
复制
warpPolar( m, polar, Size(), Point( mom.m10/mom.m00, mom.m01/mom.m00) , len, INTER_LINEAR | CV_WARP_FILL_OUTLIERS);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65722020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档