How the number of times n of the patchwork increase?
3 ビュー (過去 30 日間)
古いコメントを表示
clc;
A=imread('C:\Users\hp\Desktop\matlab\pictures\lenna.png');%sample image
rnd_x = randperm(size(A,1)-128,7);%choose 7 random unique points on x-axis
rnd_y = randperm(size(A,2)-128,7);%choose 7 random unique points on y-axis
image(A)
for ii = 1:4
for jj = 5:7
piece{jj} = A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)+1;
A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3)= piece{jj}; % add the changed pixel values to the original image A
a=imadjust(jj);
end
piece{ii} = A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)-1;%Convert chosen numbers to image pieces
A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3)= piece{ii}; % add the changed pixel values to the original image A
b=imadjust(ii);
end
imshow(A)
The above is my coding running good but it give me the following error."Error using randperm K must be less than or equal to N.
Error in file (line 3)
rnd_x = randperm(size(A,1)-128,6000);%choose 7 random unique points on x-axis"
when I want to choose 6000 or 4000 random unique points on x-axis or y-axis in the place of 7 like the following code:
clc;
A=imread('C:\Users\hp\Desktop\matlab\pictures\lenna.png');%sample image
rnd_x = randperm(size(A,1)-128,6000);%choose 7 random unique points on x-axis
rnd_y = randperm(size(A,2)-128,6000);%choose 7 random unique points on y-axis
image(A)
for ii = 1:3000
for jj = 3001:6000
piece{jj} = A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3000)+1;
A((rnd_x(jj):(rnd_x(jj)+127)),(rnd_y(jj):(rnd_y(jj)+127)),1:3000)= piece{jj}; % add the changed pixel values to the original image A
a=imadjust(jj);
end
piece{ii} = A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3000)-1;%Convert chosen numbers to image pieces
A((rnd_x(ii):(rnd_x(ii)+127)),(rnd_y(ii):(rnd_y(ii)+127)),1:3000)= piece{ii}; % add the changed pixel values to the original image A
b=imadjust(ii);
end
imshow(A)
I actually need help in the number of times n of the patchwork increase from 7 up to 6000.
0 件のコメント
採用された回答
Rik
2021 年 8 月 29 日
You don't check if your image is actually large enough to allow 6000 unique indices. You should either reduce the number of samples in such a case, or increase the resolution of your image.
7 件のコメント
Rik
2021 年 9 月 2 日
You're doing several indexing operations there. Have you checked the array sizes at that point?
piece{jj} = A( ...
(rnd_x(jj):(rnd_x(jj)+1)),...
(rnd_y(jj):(rnd_y(jj)+1)),...
1:3000) ...
+1;
- Is rnd_x guaranteed to have at least jj elements?
- Is the first dimension of A large enough to have at least rnd_x(jj)+1 elements?
- Does the second dimension of A have rnd_y(jj)+1 elements?
- Does the third dimension of A have 3000 elements?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Language Support についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!