how to break an image into sub images
古いコメントを表示
i have an image having pixels 512*512 . i want to break it in equal sub images (for eg like into images of 8*8) and want to apply a function (can be any) on each sub image ??
回答 (3 件)
José-Luis
2012 年 9 月 4 日
0 投票
Google, as well as Matlab answers are your friends:
Zainab Ishfaq
2018 年 5 月 29 日
編集済み: Walter Roberson
2020 年 2 月 13 日
Height=8; width=8;
currentimage = imread('Image.png');
[r,c,~]=size( currentimage );
count=0;
for i=0:Height:r
count=count+1;
for j=0:width:c
if((i+Height)<r && (j+width)<c)
Image=imcrop( currentimage ,[(i+1) (j+1) Height width]);
imwrite(Image,horzcat(currentfilename, num2str(count),'.tif'));
end
end
end
9 件のコメント
ahmad Al sarairah
2019 年 10 月 9 日
I have an image with (643x643) dimensions , and i need to split it horizontally and vertically into 100 sub images,so that each sub image is (64x64)pixels using matlab code .
The sub images are blocks with (64x64) pixels ,so the height and the width of each block is equal 64 .
i used this code , but i get only 10 sub images .
shital shinde
2020 年 2 月 13 日
anyone please send me above code but using parallel concept. Means using parfor loop. Actually I am working for image denoising, I want to divide the image into blocks and then try to perofrm denoisinng it. Please help me.
Walter Roberson
2020 年 2 月 13 日
Change
for i=0:Height:r
count=count+1;
to
parfor i=0:Height:r
count=i+1;
shital shinde
2020 年 2 月 14 日
error- Undefined function or variable 'currentfilename'.
I got this error when I am trying to run it,
Walter Roberson
2020 年 2 月 14 日
infilename = 'Image.png';
Height=8; width=8;
currentimage = imread(infilename);
[r,c,~]=size( currentimage );
[~, currentfilename, ~] = fileparts(infilename);
for i=0:Height:r
ridx = floor(i/Height) + 1;
for j=0:width:c
cidx = floor(j/width) + 1;
if((i+Height)<r && (j+width)<c)
Image=imcrop( currentimage ,[(i+1) (j+1) Height width]);
outfilename = sprintf('%s_%03d_%03d.tif', ridx, cidx)
imwrite(Image, outfilename);
end
end
end
shital shinde
2020 年 2 月 18 日
編集済み: shital shinde
2020 年 2 月 18 日
It again gives the error sir. I attached screenshot. I make some modifications, but it didn't work. please tell me .
Walter Roberson
2020 年 2 月 18 日
outfilename = sprintf('%s_%03d_%03d.tif', currentfilename, ridx, cidx)
shital shinde
2020 年 2 月 21 日
編集済み: shital shinde
2020 年 2 月 21 日
Thanks sir. It work now. I have one question. Can we parallelize the above example using parallel computing toolbox.
Walter Roberson
2020 年 2 月 21 日
編集済み: Walter Roberson
2020 年 2 月 21 日
Yes. Just change for i to parfor i
As we have advised you before, the result will almost certainly be notably slower than your current code. But I know from your previous questions that you feel inclined to do that testing yourself.
image-pro
2021 年 10 月 19 日
0 投票
i have an error please help
Error in p8 (line 11)
Image=imcrop(currentimage ,[(i+1) (j+1) Height width]);
1 件のコメント
Walter Roberson
2021 年 10 月 19 日
what is the error message?
カテゴリ
ヘルプ センター および File Exchange で Blocked Images についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!