请选择 进入手机版 | 继续访问电脑版

Hello Mat

 找回密码
 立即注册
查看: 5679|回复: 0

量子图像的表示方法

[复制链接]

1288

主题

1514

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22589
发表于 2018-10-27 20:39:54 | 显示全部楼层 |阅读模式
量子图像的表示方法:
  1. function LZImg=Img2LZImg(L)
  2. if(size(L,3)>1)
  3.     L = L(:,:,1);  % 灰度图像
  4. end
  5. L=double(L);
  6. [m,n]=size(L);     % 图像的行列
  7. mm = 0:m-1;
  8. nn = 0:n-1;
  9. Dmm = dec2bin(mm,log2(m));   % 行列化为二进制
  10. Dnn = dec2bin(nn,log2(n));
  11. LZImg=zeros(1,8*m*n);
  12. Yan_L=dec2bin(L,8);          % 灰度值化为二进制
  13. for i=1:m
  14.     for j=1:n
  15.         x=[];
  16.         Weizhi=strcat(Dnn(j,:),Dmm(i,:));     % 链接行和列,形如丨0010>
  17.         for ii = 1:length(Weizhi)             % 位置张量积处理
  18.             if Weizhi(ii) == '0'
  19.                 x(:,:,ii) = [1 0];            % 将位置二进制码流对应到基向量x
  20.             else
  21.                 x(:,:,ii) = [0 1];
  22.             end
  23.         end
  24.         Ji= kron(x(:,:,1),x(:,:,2));
  25.         for jj = 3:length(Weizhi)
  26.             Ji = kron(Ji,x(:,:,jj));
  27.         end
  28.         Position=Ji;
  29.         
  30.         x=[];
  31.         Yanse=Yan_L((i-1)*m+j,:);     % (i,j)处的灰度值
  32.         for yy = 1:length(Yanse)      % 颜色张量积处理
  33.             if Yanse(yy) == '0'
  34.                 x(1,yy) = 0;
  35.             else
  36.                 x(1,yy) = 1;
  37.             end
  38.         end
  39.         Biaodashi=kron(x, Position);  % 灰度值与位置的张量积
  40.         LZImg = LZImg + Biaodashi;       % 累加
  41.     end
  42. end
复制代码
量子灰度图像转化为uint8图像显示
  1. function LZImg1=LZImg2Img(LZImg, m, n)
  2. % if(size(L,3)>1)
  3. %     L = L(:,:,1);  % 灰度图像
  4. % end
  5. % L=double(L);
  6. % [m,n]=size(L);     % 图像的行列
  7. mm = 0:m-1;
  8. nn = 0:n-1;
  9. Dmm = dec2bin(mm,log2(m));   % 行列化为二进制
  10. Dnn = dec2bin(nn,log2(n));
  11. % LZImg=zeros(1,8*m*n);
  12. % Yan_L=dec2bin(L,8);          % 灰度值化为二进制
  13. y=[];
  14. for i=1:m
  15.     for j=1:n
  16.         x=[];
  17.         Weizhi=strcat(Dnn(j,:),Dmm(i,:));     % 链接行和列,形如丨0010>
  18.         for ii = 1:length(Weizhi)             % 位置张量积处理
  19.             if Weizhi(ii) == '0'
  20.                 x(:,:,ii) = [1 0];            % 将位置二进制码流对应到基向量x
  21.             else
  22.                 x(:,:,ii) = [0 1];
  23.             end
  24.         end
  25.         Ji= kron(x(:,:,1),x(:,:,2));
  26.         for jj = 3:length(Weizhi)
  27.             Ji = kron(Ji,x(:,:,jj));
  28.         end
  29.         Position=Ji;
  30.         
  31.         % 将LZImg转化为Img
  32.         x=[];
  33.         y1=0;
  34.         for kk=1:8
  35.             x(1,kk) = LZImg(1, ((kk-1)*(m*n)) + m*(j-1)+i );
  36.             y1 = y1 + x(1,kk).*(2^(8-kk));
  37.         end
  38.         y = [y, y1];
  39.     end
  40. end
  41. LZImg1 = reshape(y,[m,n]);
复制代码



参考:链接:https://pan.baidu.com/s/11UfYIZrXb5b-jVlBdedDbg 密码:nvqp








算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-3-29 16:22 , Processed in 0.232095 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表