Hello Mat

 找回密码
 立即注册
查看: 5667|回复: 1

30-基于中值的Ostu图像分割方法

[复制链接]

1329

主题

1556

帖子

10

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22677
发表于 2018-8-2 22:30:48 | 显示全部楼层 |阅读模式
30-基于中值的Ostu图像分割方法
百度网盘链接:https://pan.baidu.com/s/1Ciw1JIZC_joe-AAbzb2JnA
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1\
  1. clc,clear,close all
  2. warning off
  3. im = imread('lena.tif');
  4. figure(1), imshow(im)

  5. [count, grayvalue] = imhist(im);
  6. L = 256;
  7. if(size(im,3)>1)
  8.     im = rgb2gray(im);
  9. end
  10. [m,n] = size(im);
  11. f = count./(m*n);
  12. for i=1:L
  13.     if(f(i)~=0)
  14.         st = i;
  15.         break;
  16.     end
  17. end
  18. for i=L:-1:1
  19.     if(f(i)~=0)
  20.         ed = i;
  21.         break;
  22.     end
  23. end
  24. j=1;
  25. for i=1:ed-st
  26.     w0(j) = sum( f(1:i) );
  27.     j=j+1;
  28. end
  29. w0 = w0+0.001;
  30. w1 = 1-w0;
  31. m0 = median(1:ed-st);
  32. m1 = median(ed-st+1:L);

  33. mad1=0;
  34. for i=1:ed-st
  35.     mad1 = mad1+f(i)./w0 * abs(i-m0);
  36. end
  37. mad2=0;
  38. for i=ed-st+1:L
  39.     mad2 = mad2+f(i)./w1 * abs(i-m1);
  40. end

  41. k=w0.*mad1 + w1.*mad2;
  42. [value, index] = min(k);
  43. thr = st + index;

  44. bw = im>thr;
  45. figure(2), imshow(bw)
复制代码





算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2025-4-5 03:48 , Processed in 0.226313 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表