我要在一个微控制器上实现降比例。源分辨率为720x576 (576 i PAL分辨率,另一种可能为:480 i,NTSC分辨率),目的地为32x16。其目标是使RGB矩阵(尺寸为32x16)与各种颜色、形状、阴影等流动。- a半抽象与半有意义的效果,由准备好的PAL或NTSC视频驱动。
我将只能选择每22像素(720 / 36)和每36行(576 / 16) -微控制器将无法计算平均像素组等。这样,我将获得32x16缩小图像输出到LED矩阵。
我找不到任何例子来说明这种降尺度的行为。试着寻找“毁灭”,但没有运气。我可以用哪个程序来测试这个降级?我能不能以某种方式快速地编码这个- if--我会用libSDL1编写它,生成一组文件,但是这很困难(例如,图像加载)。也许一些小片段的解决方案是可能的?我应该关心奈奎斯特的频率吗?
发布于 2017-01-13 06:48:55
例如,您询问了图像:下面是一个由50帧组成的序列,该序列来自一个众所周知的(希望是免费提供的)序列,按照您的建议进行次采样。
我想你可能会发现次采样/抽取有点太吵了。
你确定你至少不能过滤一下盒子吗?
发布于 2017-01-12 22:18:55
一个基本的近邻尺度函数会这样工作。这里我也使用24:8不动点算法,使它更微观友好。
const int originalWidth = 320, originalHeight = 240;
int targetWidth = 50, targetHeight = 50;
char *pSource = sourceBuffer;
char *pDest = destBuffer; // you can use RGB instead of char
int yStep = (originalWidth << 8) / targetWidth;
int xStep = (originalHeight << 8) / targetHeight;
for(int y = 0, sampleY = 0; y < targetHeight; y++, sampleY += yStep) {
// Point to start of scaled Y source line
char *pSourceLine = pSource + ((sampleY >> 8) * originalWidth);
// Output the line, scaling only in X (we already know scaled-Y)
for(int x = 0, sampleX = 0; x < targetWidth; x++, sampleX += xStep)
*pDest++ = pSourceLine[sampleX >> 8];
}
这也将工作缩放图像以及向下,它应该工作在任何输入和输出的大小。
https://computergraphics.stackexchange.com/questions/4511
复制相似问题