%%%%这是一个关于超像素分割的代码  从聚类尺寸哪里开始出现zeros 而且总是报错 求解决。

function klabels = PerformSuperpixelSLIC(img_Lab, kseedsl, kseedsa, kseedsb, kseedsx, kseedsy, STEP, compactness)

[m_height, m_width, m_channel] = size(img_Lab);

numseeds = size(kseedsl);

img_Lab = double(img_Lab);

%像素标签格式为(x, y) (行, 列)

klabels = zeros(m_height, m_width);

%聚类尺寸

clustersize = zeros((numseeds, 1);

inv = zeros(numseeds, 1);

sigmal = zeros(numseeds, 1);

sigmaa = zeros(numseeds, 1);

sigmab = zeros(numseeds, 1);

sigmax = zeros(numseeds, 1);

sigmay = zeros(numseeds, 1);

invwt = 1/((double(STEP)/double(compactness))*(double(STEP)/double(compactness)));

%invwt = double(compactness)/double(STEP);

distvec = 100000*ones(m_height, m_width);

numk = numseeds;

for itr = 1: 10   %迭代次数

sigmal = zeros(numseeds, 1);

sigmaa = zeros(numseeds, 1);

sigmab = zeros(numseeds, 1);

sigmax = zeros(numseeds, 1);

sigmay = zeros(numseeds, 1);

clustersize = zeros(numseeds, 1);

inv = zeros(numseeds, 1);

distvec = double(100000*ones(m_height, m_width));

%根据当前种子点信息计算每一个像素的归属

for n = 1: numk

y1 = max(1, kseedsy(n, 1)-STEP);

y2 = min(m_height, kseedsy(n, 1)+STEP);

x1 = max(1, kseedsx(n, 1)-STEP);

x2 = min(m_width, kseedsx(n, 1)+STEP);

%按像素计算距离

for y = y1: y2

for x = x1: x2

%dist_lab = abs(img_Lab(y, x, 1)-kseedsl(n))+abs(img_Lab(y, x, 2)-kseedsa(n))+abs(img_Lab(y, x, 3)-kseedsb(n));

dist_lab = (img_Lab(y, x, 1)-kseedsl(n, 1))^2+(img_Lab(y, x, 2)-kseedsa(n, 1))^2+(img_Lab(y, x, 3)-kseedsb(n, 1))^2;

dist_xy = (double(y)-kseedsy(n, 1))*(double(y)-kseedsy(n, 1)) + (double(x)-kseedsx(n, 1))*(double(x)-kseedsx(n, 1));

%dist_xy = abs(y-kseedsy(n)) + abs(x-kseedsx(n));

%距离 = lab色彩空间距离 + 空间距离权重×空间距离

dist = dist_lab + dist_xy*invwt;

%在周围最多四个种子点中找到最相似的 标记后存入klabels

%m = (y-1)*m_width+x;

if (dist

distvec(y, x) = dist;

klabels(y, x) = n;

end

end

end

end

%重新计算种子点位置 使其向梯度最小地方移动

ind = 1;

for r = 1: m_height

for c = 1: m_width

sigmal(klabels(r, c),1) = sigmal(klabels(r, c),1)+img_Lab(r, c, 1);

sigmaa(klabels(r, c),1) = sigmaa(klabels(r, c),1)+img_Lab(r, c, 2);

sigmab(klabels(r, c),1) = sigmab(klabels(r, c),1)+img_Lab(r, c, 3);

sigmax(klabels(r, c),1) = sigmax(klabels(r, c),1)+c;

sigmay(klabels(r, c),1) = sigmay(klabels(r, c),1)+r;

clustersize(klabels(r, c),1) = clustersize(klabels(r, c),1)+1;

end

end

for m = 1: numseeds

if (clustersize(m, 1)<=0)

clustersize(m, 1) = 1;

end

inv(m, 1) = 1/clustersize(m, 1);

end

for m = 1: numseeds

kseedsl(m, 1) = sigmal(m, 1)*inv(m, 1);

kseedsa(m, 1) = sigmaa(m, 1)*inv(m, 1);

kseedsb(m, 1) = sigmab(m, 1)*inv(m, 1);

kseedsx(m, 1) = sigmax(m, 1)*inv(m, 1);

kseedsy(m, 1) = sigmay(m, 1)*inv(m, 1);

end

end

end

求助求助

matlab zeros size标量,错误使用 zeros Size 输入必须为标量。相关推荐

  1. matlab中行矢量,请教 错误使用 zeros 大小矢量必须是包含实数元素的行矢量

    clear; [fname,pname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.gif'},'Please choose a color picture...') ...

  2. matlab 7.9.0 帮助翻译--zeros函数

    zeros: 创建数据元素全部为0的矩阵 语法: B = zeros(n) B = zeros(m,n) B = zeros([m n]) B = zeros(m,n,p,...) B = zeros ...

  3. zeros什么意思_matlab中zeros函数是什么含义?MATLAB中zeros表示表示什么意思

    matlab中zeros函数是什么含义?MATLAB中zeros表示表示什么意思 发表时间:2019-12-26 10:20:18 小编:4326手游网 阅读: 在手机上看 手机扫描阅读 MATLAB ...

  4. 调用笔记本的摄像头实现基于opencv的视频人脸识别(中文显示和英文显示)以及 index 480 is out of bounds for axis 0 with size 480错误的解决

    @人脸识别代码和一些常见错误 基于opencv的视频人脸识别(中文显示)以及 index 480 is out of bounds for axis 0 with size 480错误的解决 参考了 ...

  5. 内核启动错误:vmap allocation for size 314576896 failed: use vmalloc=size to increase size

    逻辑部分加了一个PCIE-RC组件,启动时发现如下错误: # insmod recorder_all_dongtai.ko [ 188.999787] recorder_all: loading ou ...

  6. ffplay出现h264或者no frame或者missing picture in access unit with size 1392错误

    ffmpeg,ffplay,拉rtsp流出现h264@xxx错误和no frame!和missing picture in access unit with size 1392错误 情景介绍 排查方法 ...

  7. matlab must agree,运行错误Matrix dimensions must agree

    matlab运行上述程序时,出现如下错误,如何解决呢?不知道如何更正 ??? Error using ==> minus Matrix dimensions must agree. 矩阵的维度在 ...

  8. 矩阵方阵matlab,求助!!错误使用 inv 矩阵必须为方阵。

    >> clear; %输入原始数据和预测长度 x0=[95.94,129.46,156.29,145.24,115.07,173.51,253.91]; x=[1,2,3,4,5,6,7, ...

  9. mycat 启动失败 The specified size exceeds the maximum representable size JVM exited while loading the a

    错误信息: [root@server1 bin]# ./mycat console Running Mycat-server... wrapper  | --> Wrapper Started ...

最新文章

  1. 用于CUDA FFT的PyTorch包装器pytorch-fft
  2. javaweb mysql 连接池 c3p0 配置_C3P0连接池详细配置与实现(2)全局使用
  3. 带你少走弯路:强烈推荐的Keras快速入门资料和翻译(可下载)
  4. 【杂谈】数学,计算机视觉,图形图像处理
  5. C语言试题七之将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。
  6. LeetCode-reverse integer复杂度
  7. 微信禁用右上角的分享按钮,WeixinJSBridge API以及隐藏分享的子按钮等菜单项
  8. 高效Java第六条消除过期的对象引用无意识的对象保持
  9. Python成为TIOBE 2020年度编程语言!是获此奖项次数最多的语言
  10. gc android,Android GC Log解读
  11. Morpheus:虚拟现实的新杀器
  12. asp.net 各种小窍门
  13. 数据校验之Checksum算法
  14. Html Table 合并单元格
  15. 深入浅出JDBC核心技术
  16. RHEL4-ASU2-i386上安装oracle9204
  17. java--设计一个Javabean记载网页的访问数量
  18. Tableau的雷达图和凹凸图
  19. USF MSDS501 计算数据科学中文讲义 1.3 播放声音
  20. java新手案例_java初学者都要掌握的案例

热门文章

  1. 电商项目-商品详情页的实现
  2. Java Web中动态网页开发基础重点总结
  3. [AHK]用AutoHotkey实现中银国际通达信版自动登录
  4. Java面向对象三大特征理解
  5. 审讯主机是计算机配件吗,高清审讯主机用户使用手册_3U(TC-H804I-HD-BP(P)).doc
  6. c语言 函数参数 const,c语言中const的使用方法
  7. Zephyr queue
  8. 2022年,绩效管理周期的综合指南
  9. 乐荐网络-μ+,打造个性化的搜人平台
  10. 详解谷歌第二代TPU:功耗性能究竟如何?巨头想用它干什么?