MCNN提出了适用于高密度人群的自适应高斯核:

笔者所理解的自适应高斯核函数:

%function:通过高斯核产生相应的密度矩阵

%parameter: im:输入图像,灰度图; points:标注的点[X Y],n*2的矩阵

function im_density = get_density_map_autogaussian(im,points)

im_density = zeros(size(im));

[h,w] = size(im_density);

if(isempty(points))

return;

end

%points为1行

if(length(points(:,1))==1)

x1 = max(1,min(w,round(points(1,1)))); %round:四舍五入,x1变成points(1,1)处的整数

y1 = max(1,min(h,round(points(1,2))));

im_density(y1,x1) = 255;

return;

end

for j = 1:length(points)

max_kernel = 65; %最大高斯核尺寸

normal_kernel = 35; %默认高斯核尺寸

beta = 0.3; %MCNN中给定的参数

k = 6; %近邻数

maxpixel = 80; %近邻的最大距离,像素

% f_sz = normal_kernel;

% sigma = beta * f_sz;

x = min(w,max(1,abs(double(floor(points(j,1))))));

y = min(h,max(1,abs(double(floor(points(j,2))))));

if(x > w || y > h)

continue;

end

%--------%auto adaptive 自适应高斯核--------

atemp = [];

for i = 1:length(points)

if i == j

continue;

end

xk = min(w,max(1,abs(double(floor(points(i,1))))));

yk = min(w,max(1,abs(double(floor(points(i,2))))));

if(xk > w || yk > h)

continue;

end

dis = sqrt( ((xk-x)^2 + (yk-y)^2) );

atemp = [atemp dis];

end

btemp = sort(atemp);

sum = 0;

count = 0;

if k >= length(points)

k = length(points) - 1;

end

for m = 1:k

if btemp(m) > maxpixel

break;

end

sum = sum + btemp(m);

count = count + 1;

end

if count > 0

temp = sum/count;

else

temp = normal_kernel;

end

f_sz = double(floor(temp));

if mod(f_sz, 2) == 0

f_sz = double(f_sz + 1);

end

if f_sz > (max_kernel + 1)

f_sz = max_kernel;

end

sigma = beta * f_sz;

% fprintf("x:%d,y:%d,f_sz:%d,sigma:%d\n",x,y,f_sz, sigma);

%--------auto adaptive 自适应高斯核定义结束--------

H = fspecial('Gaussian',[f_sz, f_sz],sigma);

%高斯核边界限定,x方向:→,y方向:↓

x1 = x - double(floor(f_sz/2)); y1 = y - double(floor(f_sz/2)); %x1左边界,y1上边界

x2 = x + double(floor(f_sz/2)); y2 = y + double(floor(f_sz/2)); %x2右边界,y2下边界

dfx1 = 0; dfy1 = 0; dfx2 = 0; dfy2 = 0;

change_H = false;

if(x1 < 1)

dfx1 = abs(x1)+1;

x1 = 1;

change_H = true;

end

if(y1 < 1)

dfy1 = abs(y1)+1;

y1 = 1;

change_H = true;

end

if(x2 > w)

dfx2 = x2 - w;

x2 = w;

change_H = true;

end

if(y2 > h)

dfy2 = y2 - h;

y2 = h;

change_H = true;

end

x1h = 1+dfx1; y1h = 1+dfy1; x2h = f_sz - dfx2; y2h = f_sz - dfy2;

if (change_H == true)

H = fspecial('Gaussian',[double(y2h-y1h+1), double(x2h-x1h+1)],sigma);

end

im_density(y1:y2,x1:x2) = im_density(y1:y2,x1:x2) + H;

end

end

转换为密度图:

i = 45;

dataset = 'A';

path = ['../data/original/shanghaitech/part_' dataset '_final/train_data/images/'];

gt_path = ['../data/original/shanghaitech/part_' dataset '_final/train_data/ground_truth/'];

load(strcat(gt_path, 'GT_IMG_',num2str(i),'.mat')) ;

input_img_name = strcat(path,'IMG_',num2str(i),'.jpg');

im = imread(input_img_name);

[h, w, c] = size(im);

if (c == 3)

im = rgb2gray(im); %转化成[h w 1]的矩阵灰度图

end

figure(1)

imshow(im)

hold on

annPoints = image_info{1}.location;

im_density = get_density_map_autogaussian(im,annPoints);

%sum(sum(im_density))

%im_density = get_density_map_gaussian(im,annPoints);

figure(2)

cmap = colormap(jet(210));

imagesc(im_density,[0 max(max(im_density))])

%imagesc(im_density,[0 0.038])

colorbar

MCNN论文中的插图

与论文插图接近。

高斯整数matlab,Matlab---自适应高斯核相关推荐

  1. matlab中高斯核公式,Matlab版LibSVM定义线性核和高斯核的使用方法

    (1)如何采用线性核? matlab> % Linear Kernel matlab> model_linear = svmtrain(train_label, train_data, ' ...

  2. matlab二分类svm高斯核 实例,16 SVM - 代码案例三 - 不同SVM核函数效果比较

    SVM的章节已经讲完,具体内容请参考:<01 SVM - 大纲> 常规操作: 1.头文件引入SVM相关的包 2.防止中文乱码 3.读取数据 4.数据分割训练集和测试集 6:4 import ...

  3. matlab中求积函数,MATLAB软件及高斯勒让德求积公式MATLAB软件及高斯勒让德求积公式.doc...

    MATLAB软件及高斯勒让德求积公式MATLAB软件及高斯勒让德求积公式 数 值 分 析 课 程 实 验 报 告 2012-2013学年度 第二学期 系别:数学与计算机科学学院 实验课程数值分析班 级 ...

  4. 【图像去噪】基于matlab多种自适应均值滤波图像去噪【含Matlab 1843期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab多种自适应均值滤波图像去噪[含Matlab 1843期] (https://download.csdn.net ...

  5. 【MATLAB】自适应果蝇优化算法整定PID控制器参数(六)—— 一阶带时延的被控对象

    [MATLAB]自适应果蝇优化算法整定PID控制器参数(六)-- 一阶带时延的被控对象 目录 [MATLAB]自适应果蝇优化算法整定PID控制器参数(六)-- 一阶带时延的被控对象 0研究背景 1自适 ...

  6. 【光学】基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光【含Matlab源码 2166期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GS算法高斯光转换成高阶高斯光+一阶空心高斯光+贝塞尔高斯光[含Matlab源码 2166期] 点击上面蓝色字体 ...

  7. 【光学】基于matlab模拟拉盖尔高斯【含Matlab源码 2167期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab模拟拉盖尔高斯[含Matlab源码 2167期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专 ...

  8. matlab awgn矩阵,MATLAB中产生高斯白噪声,涉及到awgn和wgn函数

    MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声. 1. WGN:产生高斯白噪声 y = ...

  9. Matlab实现自适应动态规划多层神经网络的算例汇总

    使用MATLAB实现自适应动态规划(ADP)多层神经网络的算例,包括扭摆系统.仿射非线性算例以及"质量-弹簧-阻尼"系统.代码有偿,如有需求请私信联系. 扭摆系统 (torsion ...

  10. 高斯滤波的开始——高斯核的计算

    高斯滤波的开始--高斯核的计算 首先先说说高斯滤波的含义:高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程.通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点 ...

最新文章

  1. linux 进程监听服务 monit 简介
  2. Android 利用方向传感器实现 指南针
  3. c语言中常量有何作用,C语言const的用法详解,C语言常量定义详解
  4. SAP Spartacus的单页面应用特性
  5. async-await原理解析
  6. 非对称加密算法RSA加密传输数据python3源代码实现
  7. 模糊理论在机器人传感器中的应用_智能家电中的传感器应用大全
  8. android sqlite联合,在联合查询中,Android SQLiteorder by 计算列_sql_开发99编程知识库...
  9. 基础才是王道——TCP/IP详解学习笔记
  10. 极客大挑战基础部分解题过程
  11. JS动态添加元素绑定点击事件,触发事件多次执行问题?
  12. 高通SDX12平台:启动流程梳理
  13. CRM系统-----学员管理系统---admin自定义开发2
  14. 学成在线网站知识分享
  15. 荣耀手机和小米打出了真火,针锋相对比拼千元机
  16. EditText的属性说明
  17. 举例说明计算机在现实应用中的作用,,谈一谈‘‘九思’’述说的内容在今天有什么现实意义?...
  18. js简单实现一个json格式化功能
  19. 2022-2028中国半导体行业用真空电缆市场现状研究分析与发展前景预测报告
  20. 2020/8/3/ATC工具以及AIPP

热门文章

  1. Java菜鸟学习编写第一个java程序HelloWorld
  2. 灌浆料的弹性模量计算_高强无收缩灌浆料弹性模量
  3. H5页面使用js生成二维码
  4. Spring 中的 bean 生命周期(代码实现)
  5. pytorch版crnn网络框架
  6. 完美数Python解法
  7. 计算机显示程序错误,电脑老是提示应用程序错误怎么办
  8. 创建一个Scrapy爬虫项目并运行
  9. 语义分割之pspnet
  10. Linux epoll模型详解及源码分析