作者boys5566 (白昼之伦)
看板MATLAB
标题[问题]请问Subsample要怎麽取点?
时间Mon May 18 14:01:00 2015
各位大大,大家好:
小弟最近需要使用Matlab作影像处理,
以前比较没有接触过Matlab,所以对其有些不懂。
我的任务,简单的说,就是在软体上简化滤波系数,
因此不能使用imresize去跑,
但我遇到问题了:(以下是我写的程式码)
Texture = imread('Demo_texture_input.bmp');
ftr = [-0.032 0 0.284 0.496 0.284 0 -0.032];
h = imfilter(Texture,ftr);
t = h(1:end,1:5:end);
imwrite(t,'Lan.jpg');
1.假设我需要把图片长边缩成 5/6倍该怎麽做呢?(960*540 > 800*540)
t = h(1:end,1:N:end) 变成每 N 点取一点...我怎麽爬文都找不到怎麽每6点取5点,
跪求大大们帮忙。
2.为什麽我这样写,本来是RGB三色的图片处里完会变成三张(看起来是YUV)并列在一起呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.156.69
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1431928863.A.2CF.html
1F:推 celestialgod: setdiff(1:N, 1:5:N) 05/18 14:14
请问 C大 能不能再说清楚一点,我爬了一下文 setdiff 是差集,
所以是每5个点去掉一点的意思吗?
2F:推 celestialgod: 嗯,便是如此,你要每6点取5点就每6点去掉1点 05/18 14:57
3F:→ celestialgod: 你可以直接用MATLAB doc功能去看setdiff的功能 05/18 14:58
感恩!那可以在请问 问题2的状况要怎麽排除吗?为何会输出会是YUV三个分开呢?
是不是我宣告的格式不对呀?
4F:→ celestialgod: 我不熟影像处理,你得等其他人回覆 05/18 15:13
好!感谢你的回答!
※ 编辑: boys5566 (140.116.156.69), 05/18/2015 15:22:05
5F:推 Jerrynet: round(linspace(1,960,800)) 05/23 22:18
6F:→ Jerrynet: 第二个问题是你的照片是三维的,所以你的t要改成 05/23 22:19
7F:→ Jerrynet: t = h(巴拉巴拉, 巴拉巴拉, :) 05/23 22:20