how swap the bits at position L&P of A(I,j).?

2 Ansichten (letzte 30 Tage)
Sultan Mehmood
Sultan Mehmood am 11 Jul. 2018
Kommentiert: Guillaume am 20 Jul. 2018
A= imread('camera man.png');
k=1;
for I=1:256;
j=1:256;
end
x=0.3;
p=0.343;
for n=2:65536;
if x(n-1)>=0 & x(n-1)<=p
x(n)=x(n-1)/p;
else
x(n)=(1-x(n-1))/(1-p);
end
end
S=(x*255)+1;
Q=0.2;
p=0.343;
for n=2:65536;
if Q(n-1)>=0 & Q(n-1)<=p
Q(n)=Q(n-1)/p;
else
Q(n)=(1-Q(n-1))/(1-p);
end
end
D=(Q*255)+1;
L= mod(S(k),8)+1;
P=mod(D(k),8)+1;
swap??
  2 Kommentare
KSSV
KSSV am 11 Jul. 2018
What you want to swap?
Sultan Mehmood
Sultan Mehmood am 11 Jul. 2018
i want to swap the bits of L&P of A(I,j). help plzz

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Guillaume
Guillaume am 11 Jul. 2018
Bearbeitet: Guillaume am 18 Jul. 2018
bits = bitget(A(i, j), [L, P]);
A(i, j) = bitset(A(i, j), P, bits(1));
A(i, j) = bitset(A(i, j), L, bits(2));
As an aside, I would strongly recommend that you declare x and Q as:
x = [0.3, zeros(1, 65535)];
Q = [0.2, zeros(1, 65535)];
to avoid the constant reallocations that your code is doing.
  12 Kommentare
Sultan Mehmood
Sultan Mehmood am 20 Jul. 2018
what is mean by "bits(1),bits(2)"? because code is running only for first entry.
Guillaume
Guillaume am 20 Jul. 2018
bits(1) is the bit that bitget extracted at position L, bits(2) is the bit that bitget extracted at position P.
documentation for bitget
documentation for bitset

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by