2013-04-07 2 views
0

Я ищу код для вставки символов в изображение с помощью Matlab.Вставить текстовые символы в пиксели изображения

img - это мое изображение обложки и msg - это мой текст. Я получаю эту ошибку

Error using ==> bitset 
Operands to BIT Ops must be numeric. 

Но мое числовое. Это не? Как я могу это понять?

clear all; 
img=imread('img.jpg','jpg'); 
msgopen=fopen('ramz.txt'); 
msg=fread(msgopen); 
msgbin=dec2bin(msg); 
msgsize=size(msg); 
x=msgsize(1); 
msgsizebin=dec2bin(x,8); 
imgh=size(img,1); 
imgw=size(img,2); 
for i=1:imgh; 
    for j=1:imgw; 
    img(i,j)=bitset(img(i,j),msgbin(i,1)); 
    end 
end 

ответ

0

Вы можете использовать text функцию, а затем функцию hardcopy, чтобы создать изображение с текстом кодированной в данных;

img=imread('img.jpg','jpg'); 
msgopen=fopen('ramz.txt'); 
msg=fread(msgopen); 
hfig=figure; 
imshow(img); 
hold on; 
text(x_loc,y_loc,msg); %x_loc and y_loc are the locations where you want the text to 
         % appear. msg is assumed to be a string. 
orig_mode = get(hfig, 'PaperPositionMode'); 
set(hfig, 'PaperPositionMode', 'auto'); 
img_with_text = hardcopy(hfig, '-Dzbuffer', '-r0'); 
+0

Thaks для ур ухода ,, но мне нужно скрыть этот текст в битах image..in LSB бит ... мне нужно использовать BitSet но дает ошибку ... Вы можете, пожалуйста, руководство меня AGN? – user2253977

Смежные вопросы