フィルターのクリア

loop for image encryption gives error

1 回表示 (過去 30 日間)
sadiqa ilyas
sadiqa ilyas 2019 年 7 月 31 日
コメント済み: sadiqa ilyas 2019 年 8 月 1 日
I am using 8*8 matrix for image encryption but there is an error in loop which i cannot figure out why.
Km=[K11 K12;K21 K22];% 8 cross 8 matrix
I=imread('lena256.jpg');
imshow(I);
[X Y]=size(I);
for i=1:X
for j=1:4:Y
P=double(I(i,j:j+3));
EncImg(i,j:j+3)=mod((Km*P')',256);
end
error is in EncImg(i,j:j+3)=mod((Km*P')',256))
  7 件のコメント
darova
darova 2019 年 7 月 31 日
What did you change to get rid of it?
Walter Roberson
Walter Roberson 2019 年 7 月 31 日
Most jpg images are rgb even when they look gray. Real grayscale jpg images are rare. You should always check ndims of a jpg image and rgb2gray if it is not 2.

サインインしてコメントする。

採用された回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 7 月 31 日
for j=1:4:Y-3
  12 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 8 月 1 日
編集済み: KALYAN ACHARJYA 2019 年 8 月 1 日
You are continously changing the code.
Initialy
P=double(EncImg(i,j:j+7,z));
Now
P=double(I2(i,j:j+7));
Now another term I2, Have you defined I2? Be ensure that all variables or images must be defined before it used.
It would be better, if you provide the complete code, what you have, all inputs required (images also), the code you have tried so far and what result you are expecting.
Walter Roberson
Walter Roberson 2019 年 8 月 1 日
When you use
[X Y]=size(I);
then that acts like
temp = size(I);
X = temp(1);
Y = prod(temp(2:end));
For RGB files, that results in Y being 3 times the number of columns instead of being the number of columns.

サインインしてコメントする。

その他の回答 (1 件)

sadiqa ilyas
sadiqa ilyas 2019 年 8 月 1 日
As i m also trying to do some thing with the code. here is the complete code.It gives me an encrypted image but y size is doubled and i am not getting 256 cross 256 enciphered image. I have applied s box as well.peppers1.bmp
11=mod([144 234 121 183;82 275 111 231; 62 195 73 188;107 164 119 213],256);
K12=mod(eye(4,4)-K11,256);
K21=mod(eye(4,4)+K11,256);
K22=mod(-K11,256);
Km=[K11 K12;K21 K22];
I1=imread('peppers.bmp');
%I1=rgb2gray(I1);
%I1=I1(:,:,1);figure;
imshow(I1,[]);%title('red');
%I1=I1(:,:,2);figure;%title('green')
%I1=I1(:,:,3);figure;%title('blue')
imshow(I1,[])
imsave
imhist(I1)
I2=uint8(SBox(I1));
[X,Y]=size(I2);
EncImg=zeros(X,Y);
for i=1:X
for j=1:8:Y
P=double(I2(i,j:j+7));
EncImg(i,j:j+7)=mod((Km*P')',256);
end
end
  4 件のコメント
Walter Roberson
Walter Roberson 2019 年 8 月 1 日
This is getting close to the point where I have to stop you and say that we cannot help you any further. Due to the laws of the USA, we can effectively only discuss encryption here as long as your program is pretty broken, to the point where someone else would have trouble using the code to implement a working encryption function. When we start getting to the point where there is a chance that your program might start working, we cannot assist you further and we cannot permit you to post code that is nearly working.
The laws of the USA about this might not be wise or convenient, but we have to live with them.
sadiqa ilyas
sadiqa ilyas 2019 年 8 月 1 日
ok thanks

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by