Programming | 获取图像频域并分解为高低频
获取图像频域并分解为高低频(MATLAB)
我们展示两种频域分解方案:DCT或SWT变换。代码需要适配。
1. DCT变换
%// Load an image
Orig = im2double((imread("output_HEVC/1_QP22_" + tab(i) + ".png")));
%Orig = rgb2gray(Orig);
%// Transform
Orig_T = dct2(Orig);
%// Split between high- and low-frequency in the spectrum (*)
cutoff = round(0.5 * 256);
High_T = fliplr(tril(fliplr(Orig_T), cutoff));
Low_T = Orig_T - High_T;
%// Transform back
High = idct2(High_T);
Low = idct2(Low_T);
%// Plot results
figure, colormap gray
subplot(3,2,1), imagesc(Orig), title('Original'), axis square, colorbar
subplot(3,2,2), imagesc(log(abs(Orig_T))), title('log(DCT(Original))'), axis square, colorbar
subplot(3,2,3), imagesc(log(abs(Low_T))), title('log(DCT(LF))'), axis square, colorbar
subplot(3,2,4), imagesc(log(abs(High_T))), title('log(DCT(HF))'), axis square, colorbar
subplot(3,2,5), imagesc(Low), title('LF'), axis square, colorbar
subplot(3,2,6), imagesc(High), title('HF'), axis square, colorbar
2. SWT变换
picture1=im2double(imread("output/0_QP22_o6.png"));
[gac,ghc,gvc,gdc]=dwt2(picture1,'haar');
%normalize
ghc_l1=ghc(:,:,:,1);
pp=max(max(max(ghc_l1)));
ghc_l1=ghc_l1-pp;
qq=min(min(min(ghc_l1)));
ghc_l1=ghc_l1./qq;
gac_l1=gac(:,:,:,1);
pp=max(max(max(gac_l1)));
gac_l1=gac_l1-pp;
qq=min(min(min(gac_l1)));
gac_l1=gac_l1./qq;
gvc_l1=gvc(:,:,:,1);
pp=max(max(max(gvc_l1)));
gvc_l1=gvc_l1-pp;
qq=min(min(min(gvc_l1)));
gvc_l1=gvc_l1./qq;
gdc_l1=gdc(:,:,:,1);
pp=max(max(max(gdc_l1)));
gdc_l1=gdc_l1-pp;
qq=min(min(min(gdc_l1)));
gdc_l1=gdc_l1./qq;
% mean(mean(ghc_l1+gvc_l1+gdc_l1))
figure()
histogram(ghc,[-0.15:0.002:0.15])
% set(gca,'YLim',[0 18000])
figure()
histogram(gvc,[-0.08:0.001:0.08])
% set(gca,'YLim',[0 30000])
figure()
histogram(gdc,[-0.06:0.001:0.06])
Programming | 获取图像频域并分解为高低频的更多相关文章
- Note | 常用指令,工具,教程和经验笔记
目录 图像处理 机器学习和数学 编程环境和工具 写作工具 其他 图像处理 获取图像频域并分解为高低频:https://www.cnblogs.com/RyanXing/p/11630493.html ...
- 小波包分解 仿真 matlab
clc;close all;clear;fs = 100000;t = 1: 100;x = sin(2*pi*4000* t/fs) + sin(2*pi*40000*t/fs); %db8[Lo_ ...
- Chapter 1 An Overview of Computers and Programming Languages
Babylon巴比伦 loom织布机 weaver, WHO uses loom to work census: to count the population tabulate: make into ...
- RocketMQ消息发送流程和高可用设计
(源码阅读先看主线 再看支线 先点到为止 后面再详细分解) 高可用的设计就是:当producer发送消息到broker上,broker却宕机,那下一次发送如何避免发送到这个broker上,就是采用La ...
- paper 125:NSCT——Nonsubsampled contourlet 变换程序(尺度不变性问题研究)
原文地址:NSCT——Nonsubsampled contourlet 变换程序开发教程1作者:向望大海的鱼 08年,被老板逼得走投无路,xx所得项目看来是实在躲不过去,只好硬着头皮上.开发一款图像处 ...
- 学习OpenCV——Gabor函数的应用
原文:http://blog.csdn.net/yao_zhuang/article/details/2532279 下载cvgabor.cpp和cvgabor.h到你的C/C++工程目录下 注:在我 ...
- Opencv-2017-7-18
橘子薄皮只吃瓤,可以称之为过滤,意思是只要我们需要的东西,去除不需要的. 图像灰度级的分布及变化. 空间域(分布)和频域(变化). 低频(变化小),高频,水平/垂直,(高/低通滤波器). 低频-类似模 ...
- SIFT特征原理简析(HELU版)
SIFT(Scale-Invariant Feature Transform)是一种具有尺度不变性和光照不变性的特征描述子,也同时是一套特征提取的理论,首次由D. G. Lowe于2004年以< ...
- Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(下)
http://forum.china.unity3d.com/thread-32273-1-1.html 今天我们继续分享米哈游技术总监贺甲在Unite Beijing 2018大会上的演讲<在 ...
随机推荐
- python中append的使用
没有系统地学习过python,最近在append的使用上遇到了大问题,吃到了苦头 之前一直单纯地认为通过append把数添加到list中,不需要提前开空间,非常便利,但却没有意识到这个过程并不是值传递 ...
- celery生产者-消费者
Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具. 它是一个任务队列,专注于实时处理,同时还支持任务调度. celery解决了什么问题: 示例一: ...
- 新手入门:python的pip安装(二)
pip的安装以及使用pip安装包 —–安装python的时候勾选了下载pip,不知道为什么没下载.然后就偷懒想着需要哪个包再单独去下载就好了,然后!!!每个包都会出点小问题,导致我这个初学者有三天不想 ...
- npm查看本地包版本号和远程包的版本号
npm 查看远程包 第一种方法: npm info <packageName> 第二种方法: npm view <packageName> versions --json np ...
- spring cloud 2.x版本 Config配置中心教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前面的文章eureka-server的实现. 参考 eureka-server ...
- Kettle在windows上安装
Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows.Linux.Unix上运行,数据抽取高效稳定. 因为有个日常提数,工作日每天都要从数据库中提取数据,转换为excel,再以 ...
- laravel中的表单请求类型和CSRF防护(六)
laravel中为我们提供了绑定不同http请求类型的函数. Route::get('/test', function () {}); Route::post('/test', function () ...
- 【洛谷2791】幼儿园篮球题(第二类斯特林数,NTT)
[洛谷2791]幼儿园篮球题(第二类斯特林数,NTT) 题面 洛谷 题解 对于每一组询问,要求的东西本质上就是: \[\sum_{i=0}^{k}{m\choose i}{n-m\choose k-i ...
- NET EF 连接Oracle 的配置方法记录
主要记录下如何在EF 中连接Oracle s数据库,很傻瓜式,非常简单,但是不知道的童鞋,也会搞得很难受,我自己就是 1.创一个控制台程序,并且添加 Oracle.ManagedDataAccess ...
- 诚聘.NET架构师、高级开发工程师(2019年8月29日发布)
招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司 公司简介 七二四科技有限公司成立于2015年,成立之初便由金茂资本按估值2亿投资2200万,进行“健康724”平台搭建,2017 ...