Reshape array for 256 by 256 matrix showing 16 by 256
显示 更早的评论
I have 65536 real data points saved from an image. I have used reshape command to make square matrix. But result I am getting is 16 by 256 . Why is it so? Can I reconstruct the image ??
a = load('fname.txt');
y=reshape (a,256,256)
but instead of 256 by 256 it is showing 16 by 256
5 个评论
the cyclist
2013-6-27
It's impossible to know what went wrong if you do not post your code.
sudipta
2013-6-28
sudipta
2013-6-28
George Papas
2013-6-28
Hi Sudipta! Have you tried to use the command double before resizing? As far as I understood you would like to resize your image.
1) So, from the beginning, first you can get the file:
[Get_file,Get_pathname]=uigetfile;
2) Then it is very important to read and double it:
Temp_Image=double(dicomread(fullfile(Get_pathname,Get_file)));
3) At the end you can resize it:
Image=imresize(Temp_Image,resizefactor);
I think the most important thing is to double the image before any further post-processing step.
I hope that helps,
Giorgos
采纳的回答
更多回答(3 个)
It is impossible that Matlab's reshape changes the number of elements of the processed array. Therefore I'm convinced, that something completely different went wrong:
- You do not read the file your assume to read
- "It is showing 16 by 256" does not explain, how you check the size. Perhaps the bug is found in your method to obtain the array size.
- You do not use Matlab's reshape but a user-defined function. Check this by:
which reshape -all
Anand
2013-6-27
This is what you should do for an image with 65536 pixels that you want to make square:
nelem = numel(A);
side = sqrt(nelem);
Areshaped = reshape(A,side,side);
David Sanchez
2013-6-28
To reshape/resize an image, use:
imresize
Type:
help imresize
Or
doc imresize
for all the information needed to handle the issue.
类别
在 帮助中心 和 File Exchange 中查找有关 Signal Attributes and Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!