资源简介

Matlab程序,基于半色调技术的图像影藏算法,将小图像影藏到大图像的奇数行和列中,先进行线性变换,再使用半色调算法。

资源截图

代码片段和文件信息

clc;clear all;close all;%清屏


tt=imread(‘lena.png‘);
figure
imshow(tt);title(‘Original Image‘);

tt=rgb2ycbcr(tt);%将RGB色彩值变换为YcbCr色彩空间(将RGB真彩色图像转化为YcbCr色彩空间中相等的图像)
tt=tt(::1);%这三行分别是Ycbcr空间的ycbcr对应矩阵
tt=double(tt);

[NM]=size(tt);% y对应矩阵大小


A=zeros(N+2M+2);%创建大小为(N+2M+2)的矩阵用来存放接下来二值化数据
A(2:N+12:M+1)=tt(1:N1:M);
b=zeros(N+2M+2);
%for i=1:N
 %   for j=1:M
  %      b(i+1j+1)=tt(ij);
 %   end
%end



e=zeros(N+2M+2);

for i=2:N+1
   for j=2:M+1
         if mod(i2)==0&&mod(j2)==0
         b(ij) = 255*((A(ij)>127));%?
          e(ij)=A(ij)-b(ij);%误差
        
          A(ij+1)=A(ij+1)+7/16*e(ij);
          A(i+1j-1)=A(i+1j-1)+3/16*e(ij);
          A(i+1j)= A(i+1j)+5/16*e(ij);
          A(i+1j+1)= A(i+1j+1)+1/16*e(ij);
         end
   end
end

output=A(2:N+12:M+1);
output=(output>127)*255;
figure
imshow(output);title(‘Halftoned Image‘);



W=imread(‘E1.bmp‘);

figure
imshow(W);title(‘Original E‘);
W=rgb2ycbcr(W);%将RGB色彩值变换为YcbCr色彩空间(将RGB真彩色图像转化为YcbCr色彩空间中相等的图像)
W=W(::1);%这三行分别是Ycbcr空间的ycbcr对应矩阵
W=double(W);

[nm]=size(W);% y对应矩阵大小
A=zeros(n+2m+2);%创建大小为(N+2M+2)的矩阵用来存放接下来二值化数据
A(2:n+12:m+1)=W(1:n1:m);

b=zeros(n+2m+2);
%for i=1:n
 %   for j=1:m
  %      b(i+1j+1)=7*W(ij)/8+256/16;
  %  end
%end
e=zeros(n+2m+2);

for i=2:n+1
    for j=2:m+1      
        b(ij) = 255*((A(ij)>127));%?
        e(ij)=A(ij)-b(ij);%误差
        
        A(ij+1)=A(ij+1)+7/16*e(ij);
        A(i+1j-1)=A(i+1j-1)+3/16*e(ij);
        A(

评论

共有 条评论