我正在编写一些代码来缩放C/C++中的32位RGBA图像.我已经写过一些有些成功的尝试,但它们很慢,最重要的是尺寸图像的质量是不可接受的.
我比较了由OpenGL(即我的视频卡)和我的例程缩放的相同图像,它的质量相差几英里.我已经搜索了Google代码,搜索了我认为可以解决一些问题的源代码树(SDL,Allegro,wxWidgets,CxImage,GD,ImageMagick等),但通常他们的代码要么是错综复杂的,要么分散在各处或者是谜语汇编程序,很少或没有评论.我还阅读了维基百科和其他地方的多篇文章,我只是没有找到我需要的明确解释.我理解插值和采样的基本概念,但我很难让算法正确.我不想依赖外部库来完成一个例程,并且必须转换为它们的图像格式并返回.此外,无论如何,我想知道如何自己做.:)
我之前看过一个关于堆栈溢出问题的类似问题,但它并没有真正以这种方式回答,但我希望有人可以帮我推动我朝着正确的方向前进.也许指点我一些文章或伪代码......任何可以帮助我学习和做的事情.
这是我正在寻找的:
我的例程基本上采用以下形式:
DrawScaled(uint32 *src, uint32 *dst,
src_x, src_y, src_w, src_h,
dst_x, dst_y, dst_w, dst_h );
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新:为了澄清,我需要一些比盒子重新采样更先进的东西用于降尺度,这会使图像模糊不清.我怀疑我想要的是某种双三次(或其他)滤波器,它与双三次升频算法有些相反(即每个目标像素都是从所有贡献的源像素计算出来的,并结合了保持锐利的加权算法.
这是我从wxWidgets BoxResample算法得到的例子与我想要的256x256位图缩放到55x55的例子.
最后:
原始的256x256图像
有没有人知道用于拍摄图像并在其上执行图像识别的c ++库,以便它可以根据给定的字体和/或字体高度找到字母?即使是不允许你选择字体的那个也不错(例如:readLetters(Image image).
你好社区。我正在尝试解决与上面帖子中提到的相同的问题。我想在将图像发送到 OCR 之前对其进行预处理,以便获得不错的输出。出于这个原因,我想增加图像的 DPI,建议的解决方案是使用 Imagemagik。有人可以帮助我如何使用 Imagemagick 重新采样图像吗?它有很多重采样过滤器,我不确定如何进一步进行。这是 ImageMagick 重采样页面Resampling的链接。
我是信号处理和计算机视觉的新手。我希望一些大师可以建议我做什么以及如何做。