首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过跳过行和列来缩小- any示例图像?

通过跳过行和列来缩小- any示例图像?
EN

Computer Graphics用户
提问于 2017-01-10 13:27:37
回答 2查看 229关注 0票数 3

我要在一个微控制器上实现降比例。源分辨率为720x576 (576 i PAL分辨率,另一种可能为:480 i,NTSC分辨率),目的地为32x16。其目标是使RGB矩阵(尺寸为32x16)与各种颜色、形状、阴影等流动。- a半抽象与半有意义的效果,由准备好的PAL或NTSC视频驱动。

我将只能选择每22像素(720 / 36)和每36行(576 / 16) -微控制器将无法计算平均像素组等。这样,我将获得32x16缩小图像输出到LED矩阵。

我找不到任何例子来说明这种降尺度的行为。试着寻找“毁灭”,但没有运气。我可以用哪个程序来测试这个降级?我能不能以某种方式快速地编码这个- if--我会用libSDL1编写它,生成一组文件,但是这很困难(例如,图像加载)。也许一些小片段的解决方案是可能的?我应该关心奈奎斯特的频率吗?

EN

回答 2

Computer Graphics用户

回答已采纳

发布于 2017-01-13 06:48:55

“跳过行和列来缩小比例--有示例图像吗?”

例如,您询问了图像:下面是一个由50帧组成的序列,该序列来自一个众所周知的(希望是免费提供的)序列,按照您的建议进行次采样。

我想你可能会发现次采样/抽取有点太吵了。

你确定你至少不能过滤一下盒子吗?

票数 1
EN

Computer Graphics用户

发布于 2017-01-12 22:18:55

一个基本的近邻尺度函数会这样工作。这里我也使用24:8不动点算法,使它更微观友好。

代码语言:javascript
运行
AI代码解释
复制
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];
}

这也将工作缩放图像以及向下,它应该工作在任何输入和输出的大小。

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/4511

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文