MATLAB 区域生长 连通区域计算 曲线的断点查询
2017-11-06 17:00
1046 查看
区域生长
连通区域计算
曲线的断点查询
实验背景 勾画最内圈水纹一 区域生长
函数输入
f 原图像输入
S可以是一个数组,也可以是一个数字,若S是一个标量,则f中有着该值的所有点都将变成种子。
T可以是一个数组,也可以是一个标量,若T是一个标量,则它会定义一个全局阈值。阈值用来检测图像中的像素是否与该种子或8连接种子足够相似。
函数输出
g是分割后的图像,每个区域的图像都用整数标出。
NR是不同区域的数目。
TI是一幅包含种子点的图像,该图中包含经过连通区域处理前通过阈值测试的像素。
SI和TI的大小与f相同。
function [g, NR, SI, TI] = regiongrow(f, S, T) f = double(f); if numel(S) == 1 %如果只给了一个种子值,也就是说 像素为这个值的点为种子点。 SI = f == S; %SI是种子点的图像,种子点对应1,其他对应0 S1 = S; %S1是种子值 else SI = bwmorph(S, 'shrink', Inf); %n = Inf时,将目标缩成一个点。没有孔洞的目标缩成一个点,有孔洞的目标缩成一个连通环。 J = find(SI); S1 = f(J); % Array of seed values. end TI = false(size(f)); %创建逻辑全0矩阵 for K = 1:length(S1) %将f每一个像素点依次与所有种子点的值比较,如果差值在T以内,TI对应的地方为1 seedvalue = S1(K); S = abs(f - seedvalue) <= T; TI = TI | S; %TI是由F中满足阈值测试的像素组成的图像,满足的为1,不满足的为0 end [g, NR] = bwlabel(imreconstruct(SI, TI));
二 分区域区域生长
x_start=1670;%起始点坐标 y_start=820; x_end=2270;%终止点坐标 y_end=1220; X=4000; T=2400; g(y_start:y_end,x_start:x_end)=regiongrow(tem(y_start:y_end,x_start:x_end), 3000, 500); figure(229) imshow(g);
三 连通区域计算
imBw = im2bw(I); %转换为二值化图像 imLabel = bwlabel(imBw); %对各连通域进行标记 stats = regionprops(imLabel,'Area'); %求各连通域的大小 area = cat(1,stats.Area); index = find(area == max(area)); %求最大连通域的索引 %idx = find([stats.Area] > 2800); %选取特定像素大小的连通区域 img = ismember(imLabel,index); %获取最大连通域图像
四 曲线的断点查询
function g = endpoints(f) persistent lut if isempty(lut) lut = makelut(@endpoint_fcn,3); end g =applylut(f,lut); function is_end_point = endpoint_fcn(nhood) is_end_point = nhood(2,2) &(sum(nhood(:)) == 2); %nhood(2,2)指的是3*3模板中中心位置的点,其坐 %标为(2,2)。这个逻辑表达式指:3*3的模板nhood %的中心位置(2,2)位置的值为1,且和等于2.
相关文章推荐
- Matlab找最大连通区域
- 图像处理之计算连通区域的角度方向
- 实现二值图像连通区标记之区域生长法
- matlab实现区域生长
- 多值连通区域标记算法的matlab实现
- OpenCV计算连通区域数目与最大连通区域并标示出
- 实现二值图像连通区标记之区域生长法
- 区域生长算法原理及MATLAB实现
- OpenCV计算连通区域数目与最大连通区域并标示出
- matlab 曲线拟合--视频编码中PSNR计算及码率计算(2)
- 【数学建模集训系列】公交查询系统的matlab实现-价格计算
- 图像处理之计算二值连通区域的质心
- 【matlab】求图像的最大连通区域
- matlab图像处理之连通区域求质心
- MATLAB bwlabel函数 统计连通区域
- matlab,针对图像,如何获得 3D 连通区域的外接长方体
- matlab绘制一般计算时间函数的曲线
- matlab ——二值图像的连通区域图像处理与图像分析
- 用蒙特卡罗方法计算区域面积以matlab实现
- matlab区域生长编程