首页 > 其他分享 >m基于matlab的图像方块编码仿真,输出编码后PSNR图像质量指标

m基于matlab的图像方块编码仿真,输出编码后PSNR图像质量指标

时间:2023-04-14 20:57:12浏览次数:27  
标签:编码 PSNR handle oldbuf 灰度 图像 方块

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

2.算法涉及理论知识概要

       BTC编码又称方块编码,是一种有效,快速,简单的有损灰度图像数字压缩技术,具有性能高,信道容错力高等特点,在实时图像传输方面具有很高的应用价值,由美国普渡大学的Mitchell和Delphi教授提出.使用Mat-lab实现BTC编码.​

 

       方块编码也叫方块截断编码(block truncation coding,简称BTC)是静态图像编码中的一种, 其原理是把一幅图像分为大小为N×N的子像块(简称子块),由于小块内各相邻像素间具有亮度互相近似的相关性,于是只选用两个适当的亮度来近似代表小块内各像素原来的亮度,然后指明子块内的各像素分别属于哪个亮度。静态图像编码是研究怎样利用图像固有的统计特性(信源特性),以及视觉的生理学、心理学特性(信宿特性),或者记录设备(如普通照相底片)和显示设备(如电视、监示器)等的特性,经过压缩编码从原始图像信息中提取出有效信息,尽量去掉那些无用的冗余信息,以便高效率地进行图像的数字传输或数字存储;而在复原时仍能获得与原始图像相差不多的复原图像,即保持图像信息中的有效信息。

 

 

        方块编码(英语:BlockTruncationCoding,缩写:BTC)是一种用于灰度图像的有损数据压缩算法。这种算法将图像分为以方块为单位,在每一方块中,在保持原有平均数和标准方差(即保持二阶矩)的同时,减少灰度等级,以达到压缩的目的。方块编码(英语:BlockTruncationCoding,缩写:BTC)是一种用于灰度图像的有损数据压缩算法。这种算法将图像分为以方块为单位,在每一方块中,在保持原有平均数和标准方差(即保持二阶矩)的同时,减少灰度等级,以达到压缩的目的。方块编码被认为是纹理压缩算法DXTC的前身;但在DXTC出现之前很久,方块编码已就被引入彩色图像的压缩,即色彩单

 

 

 

 

3.MATLAB核心程序

 

global oldbuf;                              %定义数组为全局变量 
global  M;                                  %图像尺寸
global  N;                                  %图像尺寸
 
handle=get(gcf,'userdata');           
set(gcf,'pointer','watch');           
 
if  Select==1                             
    oldbuf=ReadImage(handle);               
else
 switch block                          %选择n*n子菜单
    case 1                             % 2×2 方块
        n=2;
        subplot(2,2,2);               %确定显示区域
        str='2×2 方块编码图像'; 
       
    case 2                             % 4×4方块 
        n=4;
        subplot(2,2,3);             
        str='4×4 方块编码图像';
    case 3                             % 8×8方块 
        n=8;
        subplot(2,2,4);              
        str='8×8 方块编码图像';
 end 
  code(n,oldbuf)
                
end 
set(gcf,'pointer','arrow');               
%-------------------------------------------------------------------------
function  oldbuf=ReadImage(handle);
% *************************************************************************
% 函数名称:                    
%    ReadImage()         
% 说明:
%    打开对话框,读入原图像。                   
% *************************************************************************
[FileName,PathName]=uigetfile({...
       '*.BMP;*.JPG;*.JPEG;*.JPE;*.GIF;*.TIF;*.PNG';});
                                       
    if isequal(FileName,0) | isequal(PathName,0)
        FullFileName=CurrentFullFileName;       
    else                                        
        FullFileName=strcat(PathName,FileName); 
        subplot(2,2,1);                         
        str='原图像';                          
        oldbuf=imread(FullFileName);           
        imshow(oldbuf);                       
        title(str);                             
        set(handle(2),'Enable','on');          
        set(handle(3),'Enable','on');           
        set(handle(4),'Enable','on');           
    end 

 

  

 

标签:编码,PSNR,handle,oldbuf,灰度,图像,方块
From: https://www.cnblogs.com/51matlab/p/17319918.html

相关文章

  • 数字图像一些性质
    title:数字图像性质date:2022-04-1314:22:25tags:-信息熵categories:-充电学习目录信息熵高斯噪声图像噪声离散傅里叶变换信息熵熵可以作为一种“失调”的度量,熵的值越大表明这个事件就越难以预料。当前这个公式底为2,表明当前熵的单位是位(bits)。应......
  • Maven_中文编码问题
    [WARNING]Usingplatformencoding(GBKactually)tocopyfilteredresources,i.e.buildisplatformdependent!解决方案pom文件中增加<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-resources-plugin&......
  • Pytorch one-hot编码
    1.引言在我们做分割任务时,通常会给一个mask,但训练时要进行onehot编码。2.codeimporttorchif__name__=='__main__':label=torch.zeros(size=(1,4,4),dtype=torch.int)label[:,2:4]=1print(label.shape)print(label)label_one_hot......
  • 解决URLEncoder.encode 编码空格变 + 号
    jdk自带的URL编码工具类URLEncoder在对字符串进行URI编码的时候,会把空格编码为+号。空格的URI编码其实是:%20解决办法:对编码后的字符串,进行+号替换为%20。总感觉这种方式不优雅。使用spring提供的UriUtils来代替URLEncoder进行编码importjava.io.UnsupportedEncoding......
  • 数字图像处理之「中值滤波」
    中值滤波原理中值滤波就是用一个奇数点的移动窗口(要求奇数主要是为了保证整个模板有唯一中心元素),将窗口中心点的值用窗口内各点的中值代替。假设窗口内有5点,其值为80、90、200、110和120,那么此窗口内各点的中值即为110。设有一个一维序列f1,f2,...,fnf1,f2,...,fn,取窗口长度(点数......
  • rv1126 获取图像数据,实现图像裁剪、缩放、旋转【RK_MPI API接口】
    前言刚接触RK平台,目前正在学习探索阶段,欢迎朋友们一起讨论,指出文章错误和可以优化的地方;如果想参照文中描述进行编译、执行程序,请先参考阅读rv1126SDK编译和rv1126数据流;版本说明,测试使用SDK版本是2020-0912版本,文中记录的问题,可能在新版本已经解决;文中使用的接口函数,可能老版本......
  • 对射式红外传感器计次(旋转编码器计次)及外部中断的应用(实物未到待完善)
    【1.什么样的设备需要外部中断】STM32想要获取的信号是外部驱动的很快的突发信号按键不推荐,外部中断不好处理按键抖动和松手检测的问题,可以在主程序中循环读取或定时器中断读取的方式【2.使用外部中断有什么样的好处】有脉冲过来,STM32立即进入中断函数处理没有脉冲的时候,S......
  • OpenCV图像模糊操作(11)
    模糊原理Smooth/Blur是图像处理中最简单和常用的操作之一使用操作的原因之一就是为了给图像预处理时候减低噪声图像噪声是指存在于图像数据中的不必要的或多余的干扰信息Smooth/Blur操作原理是数学的卷积运算,根据不同卷积运算公式,划分了多种图像滤波方式图像滤波:指的是在尽量保留......
  • 算法 | 数字图像处理之「中值滤波」
    中值滤波原理中值滤波就是用一个奇数点的移动窗口,将窗口中心点的值用窗口内个点的中值代替。假设窗口内有5点,其值为80、90、200、110和120,那么此窗口内各点的中值即为110。设有一个一维序列\(f_1,f_2,...,f_n\),取窗口长度(点数)为m(m为奇数),对其进行中值滤波,就是从输入序列中相机抽......
  • 支持图像预览的监控|会议多功能键盘(控制器)
    派尼珂Pnioke全能会议控制器NK-HDV401KC,采用金属烤漆面板,集成矢量变速四维操纵杆,支持云台摄像机全方位控制,独立的Seesaw变焦控制杆,便于摄像机镜头变倍控制,镜头远近推拉,内置3.2英寸工业彩屏,显示解码图像。支持多接口同时通讯:RS422/RS485/RS232/IP和网络Onvif、Vicsa协议解码控制,支持......