matlab 图像显著性检测ft

编程入门 行业动态 更新时间:2024-10-15 22:28:09

matlab <a href=https://www.elefans.com/category/jswz/34/1771430.html style=图像显著性检测ft"/>

matlab 图像显著性检测ft

本代码内容是关于Saliency Detection via Graph-Based Manifold Ranking的算法详解,想要运行此代码还需要一系列的文件,单纯此代码无法演示结果的。

可以在网上搜索完整文件,简单来说就是基本的SLIC小程序,其余的不是必要项。

将数据集直接放入test文件夹中,运行sample或者demo都可以吧,我的是师兄传给我的,跟各位下载的结果应该差别不大。

(为了避免大家浪费时间,这里贴出百度云下载链接,链接:

关注并且私信我发链接

clear all;close all;clc;

addpath('./function/');

%%------------------------设置参数---------------------%%

theta = 0.1; % 控制边缘的权重

alpha = 0.99; % 控制流行排序成本函数两个项的平衡

spnumber = 200; % 超像素的数量

imgRoot = './test/'; % 测试图像的路径

saldir = './saliencymap/'; % 显著性图像的输出路径

supdir = './superpixels/'; % 超像素标签的文件路径

mkdir(supdir);

mkdir(saldir);

imnames = dir([imgRoot '*' 'jpg']);

disp(imnames);

imname = [imgRoot imnames.name];

[input_im,w] = removeframe(imname); %预处理去掉边框

[m,n,k] = size(input_im);

%%----------------------生成超像素--------------------%%

imname = [imname(1:end-4) '.bmp']; %SLIC软件仅支持bmp格式的图片

comm = ['SLICSuperpixelSegmentation' ' ' imname ' ' int2str(20) ' ' int2str(spnumber) ' ' supdir]; %设置启用SLIC.exe前参数

%

system(comm); %启用SLIC.exe,将每一个像素按照超像素的区域分类,同一区域的超像素赋相同的值,值与此区域的颜色亮度无关

spname = [supdir imnames.name(1:end-4) '.dat'];

%超像素标签矩阵

fid = fopen(spname,'r');%fid是文件代号(句柄)

A = fread(fid, m * n, 'uint32'); %fread(fid, N, 'str') N代表读入元素个数, 'str'是格式类型,将此文件顺序读出来,m*n个像素点逐行扫描

A = A+1; %把A变成正整数或逻辑值

B = reshape(A,[n, m]);%将顺序读出的值改为原图像的二维格式

superpixels = B';%B的转置矩阵,转成m*n,从列开始,在同一超像素区域内的像素赋同一值,值仅作为计数用,值为n,表示第n个超像素

fclose(fid);

spnum = max(superpixels

更多推荐

matlab 图像显著性检测ft

本文发布于:2024-03-10 17:21:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1728568.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图像   matlab   ft

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!