I'm trying to perform the XOR operation between a 4x4 block of an image and a pseudo-random matrix of size 4x4.

5 ビュー (過去 30 日間)
pic = imread('Spiderman.png');
grey_pic = rgb2gray(pic);
imshow(grey_pic)
pseudo_randommat = randi(255,4,4);
fprintf('The Pseudo-Random Matrix generated:\n')
disp(pseudo_randommat)
pixel_values=grey_pic(186:189,165:168);
fprintf('Intensities of a 4x4 size pixel block from the original pic:\n')
disp(pixel_values)
fprintf('Performing XOR operation on the two blocks:\n')
decimal_tobinaryofPRS = dec2bin(pseudo_randommat);
decimal_tobinaryofPic = dec2bin(pixel_values);
performing_xor = xor(decimal_tobinaryofPRS,decimal_tobinaryofPic);
after_xor = bin2dec(performing_xor);
disp(after_xor)
I created a pseudo random matrix of size 4x4 and considered a 4x4 block of an image. I'm trying to perform XOR operation between them. So I tried to convert the intensity values of both matrices to binary and perform the XOR and convert it back to decimal and print the output. But my code doesn't seem to work. If you know the solution to this problem please share it with me. Thank you.

採用された回答

DGM
DGM 2022 年 7 月 26 日
編集済み: DGM 2022 年 7 月 26 日
Use bitxor() on arrays of uint8 class. You'll have to cast your random array to match using uint8().
A = uint8([1 2 3])
A = 1×3
1 2 3
B = uint8([2 3 4])
B = 1×3
2 3 4
C = bitxor(A,B)
C = 1×3
3 1 7
  3 件のコメント
DGM
DGM 2022 年 7 月 26 日
Sorry about the incomplete answer. My network connection is barely usable at the moment, and I just posted what I could before I got disconnected.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSignal Attributes and Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by