图像显著性检测

article/2025/10/12 7:27:27

今天看论文接触到一个新词—显著性检测,刚开始没想到是一个专业词汇,查了博客发现是一种极好的目标检测算法,可用于目标检测和定位,目标ROI区域粗分割,继而进行目标图像处理。
贴出原博客链接:OpenCV-python图像显著性检测算法
据说几种算法中FT算法比较好,所以只跑了C++版的代码。
**

解释:

**图像在频率域可以分成低频部分和高频部分。低频部分反映了图像的整体信息,如物体的轮廓,基本的组成区域。高频部分反映了图像的细节信息,如物体的纹理。显著性区域检测用到的更多的是低频部分的信息。在实际进行计算时,FT方法使用窗口5*5的高斯平滑来实现对最高频的舍去。

步骤:

1、对图像进行 5*5 的高斯平滑。
2、转换颜色空间。RGB颜色空间转换为CIELAB颜色空间。
3、计算整幅图片的 l、a、b的平均值。
4、按照算法中的公式,计算每个像素l、a、b值同图像三个l、a、b均值的欧氏距离。得到显著图
5、归一化。图像中每个像素的显著值除以最大的那个显著值。得到最终的显著图。

代码:

感谢博主代码分享:

/*===========================================================================
Copyright@hitzym, Harbin Institute of Technology
Date:Apr,13,2018
Contact:zhenyumei1995@163.com
blog: https://blog.csdn.net/yinhuan1649
===========================================================================*/
#include <iostream>
#include <opencv2/opencv.hpp> 
#include <fstream> using namespace cv;
using namespace std;void writeMatToFile(cv::Mat& m, const char* filename)        //把矩阵写入txt文件
{std::ofstream fout(filename);if (!fout){std::cout << "File Not Opened" << std::endl;return;}for (int i = 0; i<m.rows; i++){for (int j = 0; j<m.cols; j++){fout << m.at<double>(i, j) << "\t";}fout << std::endl;}fout.close();
}int main() {Mat srcimg, grgbimg, labimg;srcimg = imread("D:/images/tool_3.jpg");int height = srcimg.rows;int width = srcimg.cols;GaussianBlur(srcimg, srcimg, Size(3, 3), 0, 0, BORDER_REFLECT);            // 高斯模糊cvtColor(srcimg, labimg, COLOR_BGR2Lab);                                      //转到lab空间cv:Scalar tempVal = cv::mean(labimg);                                      //求各通道均值double lmean = tempVal.val[0];double amean = tempVal.val[1];double bmean = tempVal.val[2];Mat salientMap = Mat::zeros(height, width, CV_64F);                        //定义显著图,因为是double类型,所以在这里初始化类型为CV_64Ffor (int i = 0; i < height; i++) {for (int j = 0; j < width; j++) {//显著值计算,对应matlab代码中sm = (l-lm).^2 + (a-am).^2 + (b-bm).^2;salientMap.at<double>(i, j) = ((double)labimg.at<Vec3b>(i, j)[0] - lmean)*((double)labimg.at<Vec3b>(i, j)[0] - lmean)+ ((double)labimg.at<Vec3b>(i, j)[1] - amean)*((double)labimg.at<Vec3b>(i, j)[1] - amean)+ ((double)labimg.at<Vec3b>(i, j)[2] - bmean)*((double)labimg.at<Vec3b>(i, j)[2] - bmean);}}//double max, min;//cv::Point min_loc, max_loc;//cv::minMaxLoc(salientMap, &min, &max, &min_loc, &max_loc);//求mat中最值//cout << "max:"<< max << endl;//for (int i = 0; i < salientMap.rows; i++)//{//  for (int j = 0; j < salientMap.cols; j++)//  {//      salientMap.at<double>(i, j) = salientMap.at<double>(i, j) / max;//  }//}normalize(salientMap, salientMap, 1.00, 0.00, NORM_MINMAX);                // 1值归一化writeMatToFile(salientMap, "F:\\test.txt");cout << "yes!!" << endl;//cout << "salientMap:" << salientMap << endl;imshow("src", srcimg);imshow("salientMap:", salientMap);cout << salientMap.channels() << endl;waitKey();system("pause");return 0;
}

结果:

在这里插入图片描述


http://chatgpt.dhexx.cn/article/2qDQS96n.shtml

相关文章

全局对比度的图像显著性检测算法

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达本文转自&#xff1a;opencv学堂 显著性检测概念 显著性就是可以快速引起你注意的对象或者物体&#xff0c;在图像或者视频中显著性检测的结果往往是图像或者视频中对象&…

显著性检测- HC模型

1. 模型论文&#xff1a; Global Contrast based Salient Region detection. Ming-Ming Cheng, Niloy J. Mitra, Xiaolei Huang, Philip H. S. Torr, Shi-Min Hu. IEEE TPAMI, 2015 2. 实现代码 (1) 显著性检测公共头文件 #ifndef SALIENTCOMMON_H #define SALIENTCOMMON_…

基于深度学习的显著性检测用于遥感影像地物提取(U-2-NET)

GitHub地址链接&#xff1a;https://github.com/NathanUA/U-2-Net 这个显著性检测很好用&#xff0c;强烈推荐&#xff0c;建议二分类的任务都来试试&#xff0c;尤其对边缘细节要求比较高的任务。 下面的效果要不是第一张图预测有瑕疵&#xff0c;我都以为预测代码是把标签复制…

图像显著性目标检测

一、概述 1、定义 图像显著性检测(Saliency Detection,SD)&#xff0c; 指通过智能算法模拟人的视觉系统特点&#xff0c;预测人类的视觉凝视点和眼动&#xff0c;提取图像中的显著区域(即人类感兴趣的区域)&#xff0c;可以广泛用于目标识别、图像编辑以及图像检索等领域&am…

显著性检测——LC模型

1. 参考文献&#xff1a; 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…

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…