- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在寻找从普通图片中模拟鱼眼镜头(桶形失真)的算法(位图像素处理)。到目前为止,我发现实现涉及外部库,如 OpenCV、OpenGL 或 jhlabs。由于我正在上数字图像处理类(class)并且正在进行类(class)评估项目,因此我不确定使用任何外部库是否会给我一个好成绩。那么谁能给我这样的算法引用呢?
附言。我被要求用 Java 实现它,但任何语言的示例都可以。
最佳答案
很高兴您能够找到符合您要求的示例。将它们包含在您的问题中会很有帮助——它可以确保阅读它的人与您在同一页面上。所以这是一个link .
您想自己做事,而不是依赖某些库来为您完成繁重的工作,这也很好。但这并不意味着您必须忽略此类解决方案。原因如下。
看看 OpenCV 在 that link 中的实际用途.这些是以 cv
开头的函数:
$ grep -o "cv\\w*" barrel.cpp | sort | uniq
cv
cvCreateImage
cvGet2D
cvGetSize
cvLoadImage
cvNamedWindow
cvSaveImage
cvSet2D
cvShowImage
cvWaitKey
如果您查看 OpenCV API ,所有这些功能都只是处理普通的任务,如图像创建、删除、显示、像素设置等。这些任务都不是桶形失真所特有的。就桶形失真而言,该解决方案不是特定于 OpenCV 的。
的确,程序的核心就在这里:
float getRadialX(float x,float y,float cx,float cy,float k){
x = (x*xscale+xshift);
y = (y*yscale+yshift);
float res = x+((x-cx)*k*((x-cx)*(x-cx)+(y-cy)*(y-cy)));
return res;
}
float getRadialY(float x,float y,float cx,float cy,float k){
x = (x*xscale+xshift);
y = (y*yscale+yshift);
float res = y+((y-cy)*k*((x-cx)*(x-cx)+(y-cy)*(y-cy)));
return res;
}
这只是径向变换公式——这是您需要了解的部分。如您所见,其中没有 OpenCV 调用。
关于java - 鱼眼图片效果(桶形失真)算法(用Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978039/
是否有任何 eclipse 插件允许在单独的编辑器中仅显示类中的一个方法?就像只将类中的一个方法复制到单独的编辑器中一样,但是可以编辑(保存、使用引用搜索、ctrl+单击以导航到引用的对象)此类。简而
我正在使用这个 d3 示例并实现了鱼眼。基本上,组元素包含矩形和文本元素。如何在鼠标悬停时使组 (bar+txt) 更宽? 这是我的 fiddle :http://jsfiddle.net/30114
我一直在尝试创建一个具有 d3 鱼眼笛卡尔失真且仅 x 轴失真的垂直条形图。 我已经成功地使用以下代码扭曲了鼠标悬停时垂直条的 x 位置: var maxMag = d3.max(dataset, f
我想在我的网站上放置一个水平鱼眼/停靠导航,但我需要它固定定位...我发现的所有导航都不支持固定定位。 以下是我找到的一些链接: jQuery OS X Dock #1 - 不支持固定定位 CSS D
由于 lenscorrection,使用 ffmpeg 似乎可以补偿鱼眼失真过滤器: ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.2
我是一名优秀的程序员,十分优秀!