3.基于四元傅里叶变换的显著性检测

(Spatio-temporal Saliency Detection Using Phase Spectrum of Quaternion Fourier Transform)

定义t时刻的输入图像F(t)(t=1,2,...,T,T表示输入视频的总帧数),r(t)、g(t)、b(t)分别表示F(t)的红、绿、蓝三通道,则其独立的颜色通道R(红)G(绿)B(蓝)Y(黄)分别定义为:
F(t)的亮度特征I(t)和运动特征M(t)定义如下:
根据人眼视觉系统的生理结构!研究发现人类视觉皮层存在红/绿、蓝/黄神经元,用RG(t)、BY(t)表示如下:
研究表明!在人类视觉系统,M(t)、I(t)、RG(t)、BY(t)这四个特征通道几乎是独立的。因此!可以用一个四元数q(t)表示视频帧的上述四个特征),定义加权图像四元数表示如下:
其中
可将q(t)写为如下形式:
q(t)可写为四元傅里叶变换(Quaternion Fourier Transform)的形式:
四元傅里叶变换的逆变换可写为如下形式:
我们用Q(t)表示频域的q(t),Q(t)可以写为极数形式:
其中表示Q(t)的相位谱部分,u是四元数的虚数单位。
则Q(t)中只保留相位谱信息,对其进行傅里叶变换的逆变换得到q'表示如下:
最终的显著图定义为:
下面为基于四元傅里叶变换的显著性检测matlab代码:
[plain] view plaincopy
  1. function [qpftmap, RG, BY,I1] = qpft(rgb, sigma )%-1
  2. %四元傅里叶相位谱显著性检测
  3. [row ,col, page] = size(rgb);
  4. %计算四元数
  5. r = double(rgb(:,:,1));  g = double(rgb(:,:,2)); b = double(rgb(:,:,3));%r红通道g绿通道b蓝通道
  6. R = r - (g + b)/2; %调整后的红色通道
  7. G = g - (r + b)/2; %调整后的绿色通道
  8. B = b - (r + g)/2; %调整后的蓝色通道
  9. Y = (r + g)/2 - (abs(r - g))/2 - b;%黄色通道
  10. u1=1;%I
  11. u2=1;%RG
  12. RG = R - G;%红/绿对立神经元
  13. BY =B - Y;%蓝/黄对立神经元
  14. I1 = ((r+g+b)./3).*u1;%-0 计算亮度特征
  15. %I0=rgb2gray(rgb);
  16. %I1=grayslice(I0,64);
  17. %I1=double(I1);
  18. %level = graythresh(I0);  %OTSU阈值确定-1
  19. %I1=im2bw(I0,level); %转为二值图像-1
  20. M = zeros(row, col); %创建一个全0数组(运动特征)
  21. %定义加权四元数表示如下
  22. f1 = M + RG * 1i;
  23. f2 = BY + I1* 1i;
  24. %进行傅里叶变换
  25. F1 = fft2(f1);
  26. F2 = fft2(f2);
  27. phaseQ1 = angle(F1);%得到相位谱
  28. phaseQ2 = angle(F2);%得到相位谱
  29. ifftq1 = ifft2(exp(phaseQ1 * 1i));%对相位谱进行傅里叶反变换
  30. ifftq2 = ifft2(exp(phaseQ2 * 1i));%对相位谱进行傅里叶反变换
  31. absq1 = abs(ifftq1);%得到幅值图像
  32. absq2 = abs(ifftq2);%得到幅值图像
  33. squareq=(absq1+absq2).*(absq1+absq2);
  34. L = fspecial('gaussian', [5 5], sigma);%标准差为sigma的二维高斯滤波算子
  35. Squareq = mat2gray(imfilter(squareq, L, 'circular'));%L表示标准差为sigma的二维高斯滤波器
  36. qpftmap = mat2gray(Squareq);%最终显著图为归一化后的二维矩阵
  37. end

四元傅里叶显著性图-四元数-Matlab编程相关推荐

  1. 【Machine Learning 四】设置机器学习可用的Matlab编程分配环境

    访问MATLAB在线并上传编程练习文件 在课程期间,MathWorks将为机器学习学生提供对MATLAB Online的访问.MATLAB Online是MATLAB桌面程序的在线版本.它在基于Web ...

  2. MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...

  3. matlab两点之间的所有路径,引用 在图中搜索两点间的所有路径matlab编程

    引用 在图中搜索两点间的所有路径matlab编程 2018-09-18 function possiablePaths = findPath(Graph, partialPath, destinati ...

  4. matlab fsolve 解的范围,【求助】用fsolve解四元非线性方程组,求解参数的范围问题...

    求助各位大神,我用fsolve求解了一个四元非线性方程组,方程比较复杂,得到了结果不符合条件. 代码 syms a b c d e g s r t e=0.2; g=0.08; s=1.5; r=0. ...

  5. 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建

    %% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...

  6. 【元胞自动机】基于matlab元胞自动机多车道信号交叉口仿真【含Matlab源码 818期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

  7. 【元胞自动机】基于matlab元胞自动机3D森林火灾模型【含Matlab源码 656期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

  8. MATLAB学习笔记3:MATLAB编程基础(前半)

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

  9. 【元胞自动机】基于matlab元胞自动机模拟交通路况(含超车)【含Matlab源码 2389期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

最新文章

  1. 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义 | AI ProCon 2019
  2. SAP FI配置关键点
  3. WPF实现仪表盘(刻度跟随)
  4. Java对象垃圾回收调用,JVM垃圾回收之哪些对象可以被回收
  5. JEECG 3.6.5版本发布,企业级JAVA快速开发平台
  6. 消息称谷歌Pixel系列手机默认禁用美颜功能
  7. 又是系统时间惹的祸 TreeView
  8. macOS 上使用 lightgbm 遇到的坑及解决方法
  9. sar分辨率公式_对PAR DAR SAR的理解
  10. 系出名门Android(9) - 数据库支持(SQLite), 内容提供器(ContentProvider)
  11. Delphi Open Tools Api实例研究(一)
  12. Confluence 6 Oracle 创建数据库用户
  13. python乱码大赛_FishC工作室《零基础学python》全套课后题.doc
  14. java 复制网页文字,网页文字和图片不能复制怎么办
  15. matlab三维向量,matlab三维数据绘图
  16. 用计算机怎么计算字节,计算机硬盘容量大小怎么计算
  17. ARM Linux下的phys_to_virt/virt_to_phys函数
  18. 这道题的错误做法是我原创的,目前还不知道哪错了!!!
  19. live555服务器性能,使用Live555 HTTP容量作为信号服务器
  20. C语言数组大小极限,C中允许的最大静态数组大小是多少?

热门文章

  1. 龙岭迷窟真的这么好看?今天我们就用 Java 爬取豆瓣数据好好分析一下!
  2. pfamscan 的使用_使用pfam-scan进行Pfam注释
  3. UWA学堂专栏推荐:光照贴图Lightmap初探
  4. QT如何实现后台运行(即最小化到右下角托盘)
  5. PVP:手游进程的终点
  6. 账号共享风险大 恐泄漏用户信息
  7. V831——人脸识别开锁
  8. 2020_WWW_The Structure of Social Influence in Recommender Networks
  9. 网络:简述对家庭宽带和专线(企业宽带)的认识
  10. 最全中文3DMAX四边形散布插件QuadScatter使用教程