显著性检测——LC模型

article/2025/10/12 8:42:07

1. 参考文献:

Visual Attention Detection in Video Sequences Using Spatiotemporal Cues。 Yun Zhai and Mubarak Shah.  Page 4-5


2. 模型实现

2.1 显著性检测公共头文件

#ifndef SALIENTCOMMON_H
#define SALIENTCOMMON_H
// std lib
#include <iostream>
#include <string>
#include <vector>
#include <fstream>// opencv lib
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/ml/ml.hpp>using namespace std;
using namespace cv;#endif // SALIENTCOMMON_H

2.2 显著性检测头文件

#ifndef SALIENTLC_H
#define SALIENTLC_H
#include "salientcommon.h"
// 参考论文:Visual Attention Detection in Video Sequences Using Spatiotemporal Cues。 Yun Zhai and Mubarak Shah.  Page 4-5
//
class salientLC
{
public:salientLC(Mat orgImg);~salientLC();void m_getSalientLC(Mat& resultImg);
private:void m_getHistgram();void m_Normalize(Mat& distMap);void m_rgb2Lab();void m_getDistTable();
private:Mat m_orgImg;Mat m_labImg;unsigned int m_maxDist;unsigned int m_minDist;unsigned int m_hist[256];unsigned int m_distTable[256];Mat m_resultImg;
};#endif // SALIENTLC_H

2.3 显著性检测实现文件(.cpp)

#include "salientlc.h"salientLC::salientLC(Mat orgImg)
{orgImg.copyTo(m_orgImg);m_minDist = (unsigned int)0xEFFFFFFF;m_maxDist = (unsigned int)0x00000000;memset(m_hist, 0, sizeof(m_hist));memset(m_distTable, 0, sizeof(m_distTable));m_rgb2Lab();m_getDistTable();
}salientLC::~salientLC()
{;
}void salientLC::m_getSalientLC(Mat& resultImg)
{int W = m_labImg.cols;int H = m_labImg.rows;int rowIter, colIter;unsigned int histIter;int channelIter;Mat distMap = Mat::zeros(Size(W,H), CV_32FC1);m_getHistgram();for(rowIter = 0; rowIter < H; ++rowIter){for(colIter = 0; colIter < W; ++colIter){unsigned int tmpVal = 0;for(channelIter = 0; channelIter < 3; ++channelIter){unsigned int  value = m_labImg.at<Vec3b>(rowIter, colIter)[channelIter];for(histIter = 0; histIter < 256; ++histIter){int absVal = histIter > value ? histIter - value : value - histIter;tmpVal += m_hist[histIter] * m_distTable[absVal];}}distMap.at<float>(rowIter, colIter)  =  tmpVal;if(distMap.at<float>(rowIter, colIter) < m_minDist){m_minDist = distMap.at<float>(rowIter, colIter);}if(distMap.at<float>(rowIter, colIter) > m_maxDist){m_maxDist = distMap.at<float>(rowIter, colIter);}}}cout << "minDist = " << m_minDist << ", " << "maxDist = " << m_maxDist << endl;m_Normalize(distMap);m_resultImg.copyTo(resultImg);
}void salientLC::m_getHistgram()
{int W = m_labImg.cols;int H = m_labImg.rows;int rowIter, colIter;for(rowIter = 0; rowIter < H; ++rowIter){for(colIter = 0; colIter < W; ++colIter){m_hist[m_labImg.at<uchar>(rowIter, colIter)]++;}}
}void salientLC::m_getDistTable()
{int iter;for(iter = 0; iter < 256; ++iter){m_distTable[iter] = iter * iter;}
}void salientLC::m_Normalize(Mat& distMap)
{int W = distMap.cols;int H = distMap.rows;int rowIter, colIter;m_resultImg = Mat::zeros(Size(W,H), CV_8UC1);for(rowIter = 0; rowIter < H; ++rowIter){for(colIter = 0; colIter < W; ++colIter){m_resultImg.at<uchar>(rowIter,colIter) = (int)((distMap.at<float>(rowIter, colIter)  - m_minDist)* 1.0 / (m_maxDist - m_minDist) * 255);}}
}void salientLC::m_rgb2Lab()
{Mat tmpImg;if(m_orgImg.channels() == 1){cvtColor(m_orgImg, tmpImg, CV_GRAY2BGR);}else{m_orgImg.copyTo(tmpImg);}cvtColor(tmpImg, m_labImg, CV_BGR2Lab);
}

3. 实现效果:



http://chatgpt.dhexx.cn/article/TjeKXQ0B.shtml

相关文章

GrabCut算法、物体显著性检测

图割GraphCus算法。利用颜色、纹理等信息对GraphCut进行改进&#xff0c;形成效果更好的GrabCut算法。 对图像的目标物体和背景建立一个K维的全协方差高斯混合模型。 其中&#xff0c;单高斯模型的概率密度函数用公式表示为&#xff1a; 高斯混合模型可表示为n个单高斯模型的概…

显著性检测的评价指标代码

包括MAE、Pre、Rec、F-measure、Auc、CC、Nss MAE&#xff1a; 平均绝对误差MAE&#xff08;mean absolute error&#xff09;&#xff0c;范围[0,∞)&#xff0c;当预测值与真实值完全吻合时等于0&#xff0c;即完美模型&#xff1b;误差越大&#xff0c;该值越大。 Pre、Re…

2023年显著性检测论文及代码汇总

AAAI LeNo: Adversarial Robust Salient Object Detection Networks with Learnable Noise Abstacrt&#xff1a;目前很少有SOD模型对人类视觉注意力难以察觉的对抗性攻击具有鲁棒性。先前的鲁棒显著性ROSA对预分割的超像素进行重组&#xff0c;通过密集连接的条件随机场CRF对…

【显著性检测】Matlab实现Itti显著性检测

目录 理论知识代码步骤读取图像得到金字塔图像提取底层特征计算显著图显著图综合 运行结果展示 理论知识 显著性检测 是指按照人类的视觉注意机制&#xff0c;判断出图像中的显著区域&#xff0c;并为该区域分配较高的显著值&#xff0c;通常认为显著区域更有可能包含目标&…

Opencv之谱残差显著性检测

学习资料参考&#xff1a; 张平.《OpenCV算法精解&#xff1a;基于Python与C》.[Z].北京.电子工业出版社.2017. 前言 在使用谱残差进行显著性检测之前&#xff0c;我们需要理解两个概念&#xff0c;分别是幅度谱和相位谱。 幅度谱和相位谱是将图片进行傅里叶正向变换之后得到的…

显著性检测——GR模型

显著性检测——GR模型 1. Introduction2. Saliency Model2.1 Initial Saliency Map2.2 Saliency Map Refining With Graph Regularization 3. Experiments4. Conclusion参考文献 本人最近在做视觉显著性检测相关的工作&#xff0c;决定把自己的学习经历形成文字&#xff0c;希望…

视频显著性检测----《Flow Guided Recurrent Neural Encoder for Video Salient Object Detection》

本文将重点与大家探讨和分享发表于CVPR2018上的视频显著性检测文章–《Flow Guided Recurrent Neural Encoder for Video Salient Object Detection》&#xff0c;在讨论之前&#xff0c;先带领大家简单回顾一下什么是显著性检测&#xff0c;目前图片显著性检测的常用方法&…

计算机视觉——图像视觉显著性检测

目录 系列文章目录 零、问题描述 一、图像显著性检测 1.定义 2.难点 二、常用评价标准和计算方法 1.综述 2.ROS曲线详述 2.1 混淆矩阵 2.2 ROC曲线简介 2.3 ROC曲线绘制及其判别标准 2.4 ROC曲线补充 三、Fast and Efficient Saliency (FES) 1.算法简介 2.项目导…

显著性检测后处理

将显著性检测图像后处理&#xff0c;绘出一个矩形框&#xff0c;方便使用 先通过边缘检测&#xff0c;然后通过opencv接口实现 结果如下&#xff1a; # --coding:utf # -8-*- import osimport cv2 as cv import numpy as np# canny边缘检测 def canny_demo(image):t 50cann…

基于深度学习的视频显著性检测学习(入门)

一、传统的视频显著性检测 什么是视频显著性检测呢&#xff1f; 我的理解是检测某一段视频的每一帧图片的显著性区域&#xff0c;那这样理解的话就相当于多个图片的显著性检测&#xff0c;所以他是依赖于输入视频帧的对比度、梯度以及纹理来进行相关计算。但既然是视频显著性检…

显著性检测—学习笔记

视觉显著性旨在模仿人类视觉系统选择视觉场景的某个子集的能力。而显著性物体检测&#xff08;SOD&#xff09;则侧重于检测场景中吸引最多注意力的物体&#xff0c;然后逐像素的提取物体的轮廓。SOD的优点在于它在许多计算机视觉任务中均有广泛的应用&#xff0c;包括&#xf…

显著性检测

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/qq_32493539/article/details/79530118 转载请附链接&#xff0c;注明出处。 显著性对象检测综述…

在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具

最近发现一个超好用的“在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具”。 链接在此奉上&#xff1a;在线HTTP接口测试 - HTTP GET/POST模拟请求测试工具 很好的一点就是我们只要QQ登录后&#xff0c;就可以记住请求地址&#xff0c;包括请求参数&#xff0c;包括请求co…

https协议的接口测试

用jmeter测试https接口&#xff1a; 和传统的http协议套路不太一样. 注意细节&#xff1a; 1、取样器正常选择http请求&#xff0c;端口号&#xff1a;为443&#xff08;具体根据接口文档我刚开始用的80端口所以错了&#xff09; 2、请求方法&#xff0c;一定一句接口文档&…

接口测试HTTP请求

一、Get请求与Post请求的区别 1.get请求没有请求体&#xff0c;post请求有请求体 2.get请求的参数&#xff08;需要传递的数据&#xff09;要放在URL中发送。大小有限制 post请求的参数可以放在URL后传递&#xff0c;也可以放在请求体中&#xff08;大小不受限制&#xff09…

Jmeter进行http接口测试,这一篇就搞定

jmeter-http接口测试脚本 jmeter进行http接口测试的主要步骤 &#xff08;1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL&#xff0c;路径&#xff0c;请求方式&#xff0c;参数 4.添加查看结果树 5.调用接口&#xff0c;查看返回值&#xff09; 针对接口添加…

http接口测试——Jmeter接口测试实例讲解

一、测试需求描述 1、 本次测试的接口为http服务端接口 2、 接口的主要分成两类&#xff0c;一类提供给查询功能接口&#xff0c;一类提供保存数据功能接口&#xff0c;这里我们举例2个保存数据的接口&#xff0c;因为这两个接口有关联性&#xff0c;比较有代表性&#xff1b;…

http接口测试工具-Advanced-REST-client

非常好用的http接口测试工具 相信作为一个java开发人员&#xff0c;大家或多或少的要写或者接触一些http接口。而当我们需要本地调试接口常常会因为没有一款好用的工具而烦恼。今天要给大家介绍一款非常好用、实用且方便的http接口测试工具。本人认为这是目前我用过的最好http…

http接口测试:了解协议、请求方法、响应状态码

http接口测试&#xff1a;了解协议、请求方法、响应状态码 接口在各个系统间的重要性无需重申&#xff0c;主要体现在外部系统与系统之间以及内部各子系统之间的交互点。通过这些特定的交互点和一些特殊的规则标准&#xff08;协议&#xff09;来进行系统数据之间的交互&#…

如何用postman进行http接口测试?好好看好好学

目录 优点&#xff1a; 1、什么是POSTMAN 2、新建一个项目 2、新增一个用例 3、添加请求信息 4、post请求参数 5、添加头信息 6、预处理和结果检查 7、全局变量与环境变量 8、导出用例为代码 9、批量执行用例 HTTP的接口测试工具有很多&#xff0c;可以进行http请求…