Problem with data class when working in GUI...... plz help....

4 ビュー (過去 30 日間)
ankita
ankita 2012 年 12 月 22 日
I am working in image watermarking, I m embedding a BMP image in Blue component of color image,
for ii=1:Mm
for jj=1:Nm
array2D(ii,jj) = bitget(blue_component(ii,jj),1);
save('array.mat','array2D');
watermarked_image(ii,jj)=bitset(blue_component(ii,jj),1,message1(ii,jj));
array2Dafter(ii,jj) = bitget(watermarked_image(ii,jj),1);
save('array2.mat','array2Dafter');
end
end
I m collecting the lsb of original blue panel in array2D to be inserted back later.
when i m running the code without making a GUI interface using Guide, array2D is of class uint8 while when i run some as a part of a pushbutton callback it is saved as class double, now while the second bitget after embedding is recovered same as uint8 both times,.. I want to get bLue_component as uint8 with gui.... i m not able to find the issue ...... plz plz plz help
  3 件のコメント
ankita
ankita 2012 年 12 月 22 日
array2D = cell([Mm,Nm]); array2D=zeros(Mm,Nm);
I tried both initialization ....
and the question was reposted by mistake....
Walter Roberson
Walter Roberson 2012 年 12 月 22 日
Saving array2D and array2Dafter in every iteration of the "for" loop does not seem to be efficient.

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

採用された回答

Image Analyst
Image Analyst 2012 年 12 月 22 日
編集済み: Image Analyst 2012 年 12 月 22 日
You can change the class of a variable by casting it to the desired type using uint8(), logical(), or whatever class you want. It will round or clip the values to fit into the data type of the target class, e.g. 42.73 goes to 43 for uint8, 256 goes to 255 for uint8, 1 goes to true for logical, etc.
Perhaps you'd be interested in my demo that does LSB watermarking. Let me know and I'll post it.
  6 件のコメント
ankita
ankita 2012 年 12 月 22 日
thnk you ...... thats the reason .... i was seeking for .....
Image Analyst
Image Analyst 2012 年 12 月 22 日
So have all your questions been answered or not? Mark as answered if you're done.

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 12 月 22 日
array2D = zeros(Mm, Nm, 'uint8');
  3 件のコメント
Walter Roberson
Walter Roberson 2012 年 12 月 22 日
How are you opening the array2D ?
What does
whos -file array.mat
show?
ankita
ankita 2012 年 12 月 22 日
array2D 64x128 65536 double global when part of gui
array2D1 64x128 8192 uint8 when not part of gui

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

Community Treasure Hunt

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

Start Hunting!

Translated by