필터 지우기
필터 지우기

Image Processing

조회 수: 2 (최근 30일)
harjan
harjan 2011년 8월 20일
Hi 2 all I have 16x16 image i want to convert this to 128x128 image (that means for every 16 bit it must replicate to 8x8 of this same bit value) Please clarify this Thx in advance

채택된 답변

Image Analyst
Image Analyst 2011년 8월 20일
Another way to do it, using the Image Processing Toolbox:
m128 = imresize(m16, 8, 'nearest');
  댓글 수: 2
harjan
harjan 2011년 8월 22일
ml28 refers what.....Its just a variable?
Sean de Wolski
Sean de Wolski 2011년 8월 22일
It's the name of the image variable that will be 128x128, hence the descriptive numbering.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2011년 8월 20일
New_Image = kron(your_image,ones(8));
Kronecker Tensor Product
  댓글 수: 3
Walter Roberson
Walter Roberson 2011년 8월 20일
I read that as "And did she get a browser?"...
Sean de Wolski
Sean de Wolski 2011년 8월 22일
It's probably just dirt from the trail. I'll get a bigger picture! And yes, she got Firedog 4.2.

댓글을 달려면 로그인하십시오.


Vivek Bhadouria
Vivek Bhadouria 2011년 8월 22일
Use this piece of code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This program is used to zoom or shrink an image
% Input:image B3: gray-image or RGB image
% p: ratio, zooming (p>1), shrink(p<1)
% m: mode; =0:(default) nearest neighbor interpolation
% =1: Bilinear interpolation
% =2: Bicubic interpolation
% Output: image A3 % A3 = imageresize(B3,p,m);
%Vivek Singh Bhadouria, NIT-Agartala
%India, 9 August 2011, 01:05 AM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function A3 = imageresize(B3,p,m)
B3=im2double(B3);
error(nargchk(2, 3, nargin, 'struct'));
if nargin < 3, m = 0; end
dimB = length(size(B3));
if dimB== 2 % GRAY-IMAGE INPUT:
A3 = gray_resize(B3,p,m);
elseif dimB== 3 % COLOR RGB-IMAGE INPUT:
AR = gray_resize(B3(:,:,1),p,m);
AG = gray_resize(B3(:,:,2),p,m);
AB = gray_resize(B3(:,:,3),p,m);
A3 = zeros([size(AR) 3]);
A3(:,:,1) = AR;
A3(:,:,2) = AG;
A3(:,:,3) = AB;
else
error('Improper input image');
end
%**************************************************%
%==================================================%
% Sub-Function: Resize a gray-image
% Same input argument with imageresize()
function A = gray_resize(B,p,m)
% Initialize new-grid and output
[N,M] = size(B);
xp = 1:1/p:N+1/p; yp = 1:1/p:M+1/p;
A = zeros(length(xp),length(yp));
% Symmetric Padding
npad = 3;
B = sym_pad(B,npad);
switch m
case 0 % Nearest neighbor interpolation
U = round(xp); V = round(yp);
U(find(U<1)) = 1; V(find(V<1)) = 1;
U(find(U>N)) = N; V(find(V>M)) = M;
A = B(U+npad,V+npad);
case 1 % Bilinear interpolation
% Floor of (xp,yp)
xf = floor(xp); yf = floor(yp);
% Distance to top-left neighbors
[XF,YF] = ndgrid(xf,yf);
[XP,YP] = ndgrid(xp,yp);
u = XP - XF; v = YP - YF;
% Change xf, yf for new padding image
xf = xf + npad; yf = yf + npad;
% Interpolation
A = (1-u).*(1-v).*B(xf,yf) + ...
(1-u).*v .*B(xf,yf+1) + ...
u .*(1-v) .*B(xf+1,yf) + ...
u .*v .*B(xf+1,yf+1);
case 2
% Floor of (xp,yp)
xf = floor(xp);yf = floor(yp);
% Distance to top-left neighbors
[XF,YF] = ndgrid(xf,yf);
[XP,YP] = ndgrid(xp,yp);
u = XP - XF; v = YP - YF;
% Change xf, yf for new padding image
xf = xf + npad; yf = yf + npad;
% Interpolation: 16 neighbors
for i = -1:2
for j = -1:2
if i==-1, sgi = -1; else sgi = 1; end
if j==-1, sgj = -1; else sgj = 1; end
A = A + mex_hat(sgi*(i-u)).*mex_hat(sgj*(j-v)).*B(xf+i,yf+j);
end
end
otherwise
error('Undefined Interpolation method');
end
%**************************************************%
%==================================================%
% Sub-Function: Mexican-hat kernel
function hx = mex_hat(x)
hx = zeros(size(x));
x = abs(x);
ind1 = find(x<=1); ind2 = find(x>1 & x<=2);
hx(ind1) = 1 - 2*x(ind1).^2 + x(ind1).^3;
hx(ind2) = 4 - 8*x(ind2) + 5*x(ind2).^2 - x(ind2).^3;
% END of sub-function
%==================================================%
% Sub-Function: symmetric padding, by default 2 pixels
% Input: gray image
function Bp = sym_pad(B,n)
Bp = zeros(size(B)+2*n);
Bp(n+1:end-n,n+1:end-n) = B;
% Padding symmetrically 4 boundaries
Bp(n:-1:1,n+1:end-n) = B(1:n,:);
Bp(n+1:end-n,n:-1:1) = B(:,1:n);
Bp(end-n+1:end,n+1:end-n) = B(end:-1:end-n+1,:);
Bp(n+1:end-n,end-n+1:end) = B(:,end:-1:end-n+1);
% END of sub-function
%==================================================%
HAPPY TO HELP FOR SCIENTIFIC NOBLE CAUSE
  댓글 수: 1
harjan
harjan 2011년 8월 23일
Thx a lot........

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by