- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家。我正在尝试使用 MATLAB 获得水中气泡的边界尺寸。代码和结果如下所示。
clear;
clc;
i1=imread('1.jpg');
i2=imread('14.jpg');
% i1=rgb2gray(i1);
% i2=rgb2gray(i2);
[m,n]=size(i1);
im1=double(i1);
im2=double(i2);
i3=zeros(size(i1));
threshold=29;
for i=1:m;
for j=1:n;
if abs((im2(i,j))-(im1(i,j)))>threshold ;
i3(i,j)=1;
else abs((im2(i,j))-(im1(i,j)))<threshold;
i3(i,j)=0;
end
end;
end;
se = strel('square', 5);
filteredForeground = imopen(i3, se);
figure; imshow(filteredForeground); title('Clean Foreground');
BW1 = edge(filteredForeground,'sobel');
subplot(2,2,1);imshow(i1);title('BackGround');
subplot(2,2,2);imshow(i2);title('Current Frame');
subplot(2,2,3);imshow(filteredForeground);title('Clean Foreground');
subplot(2,2,4);imshow(BW1);title('Edge');
如图所示,结果不是很理想。那么有人可以给我一些建议来改善我的结果吗?以及如何将边界坐标输出到文件并获得气泡的真实尺寸?非常感谢!
最佳答案
首先请注意,您的背景删除几乎没有用。
如果我们绘制diffI=i2-i1; imshow(diffI,[]);colorbar
,我们可以看到差异几乎和图像本身一样大。您需要了解它在视觉上与您相似的东西,但不一定在数值上相似,这就是一个很好的例子。
因此,您并不拥有您认为拥有的东西。背景在你的阈值中。然后,请注意您要分割的对象,它不仅仅是更白。在某些区域,它绝对和背景一样暗。这意味着按值阈值进行简单分割将行不通。您需要更好的分割技术。
我碰巧有一份 this level set algorithm在我的 MATLAB 中,“Distance Regularized Level Set Evolution”。
当我使用您的图像运行代码 demo_1 时,我得到以下信息(漂亮的 gif!):
( Uncompressed )
演示的完整代码:
% This Matlab code demonstrates an edge-based active contour model as an application of
% the Distance Regularized Level Set Evolution (DRLSE) formulation in the following paper:
%
% C. Li, C. Xu, C. Gui, M. D. Fox, "Distance Regularized Level Set Evolution and Its Application to Image Segmentation",
% IEEE Trans. Image Processing, vol. 19 (12), pp. 3243-3254, 2010.
%
% Author: Chunming Li, all rights reserved
% E-mail: lchunming@gmail.com
% li_chunming@hotmail.com
% URL: http://www.imagecomputing.org/~cmli//
clear all;
close all;
Img=imread('/image/Wt9be.jpg');
Img=double(Img(:,:,1));
%% parameter setting
timestep=1; % time step
mu=0.2/timestep; % coefficient of the distance regularization term R(phi)
iter_inner=5;
iter_outer=300;
lambda=5; % coefficient of the weighted length term L(phi)
alfa=-3; % coefficient of the weighted area term A(phi)
epsilon=1.5; % papramater that specifies the width of the DiracDelta function
sigma=.8; % scale parameter in Gaussian kernel
G=fspecial('gaussian',15,sigma); % Caussian kernel
Img_smooth=conv2(Img,G,'same'); % smooth image by Gaussiin convolution
[Ix,Iy]=gradient(Img_smooth);
f=Ix.^2+Iy.^2;
g=1./(1+f); % edge indicator function.
% initialize LSF as binary step function
c0=2;
initialLSF = c0*ones(size(Img));
% generate the initial region R0 as two rectangles
initialLSF(size(Img,1)/2-5:size(Img,1)/2+5,size(Img,2)/2-5:size(Img,2)/2+5)=-c0;
% initialLSF(25:35,40:50)=-c0;
phi=initialLSF;
potential=2;
if potential ==1
potentialFunction = 'single-well'; % use single well potential p1(s)=0.5*(s-1)^2, which is good for region-based model
elseif potential == 2
potentialFunction = 'double-well'; % use double-well potential in Eq. (16), which is good for both edge and region based models
else
potentialFunction = 'double-well'; % default choice of potential function
end
% start level set evolution
for n=1:iter_outer
phi = drlse_edge(phi, g, lambda, mu, alfa, epsilon, timestep, iter_inner, potentialFunction);
if mod(n,2)==0
figure(2);
imagesc(Img,[0, 255]); axis off; axis equal; colormap(gray); hold on; contour(phi, [0,0], 'r');
drawnow
end
end
% refine the zero level contour by further level set evolution with alfa=0
alfa=0;
iter_refine = 10;
phi = drlse_edge(phi, g, lambda, mu, alfa, epsilon, timestep, iter_inner, potentialFunction);
finalLSF=phi;
figure(2);
imagesc(Img,[0, 255]); axis off; axis equal; colormap(gray); hold on; contour(phi, [0,0], 'r');
hold on; contour(phi, [0,0], 'r');
str=['Final zero level contour, ', num2str(iter_outer*iter_inner+iter_refine), ' iterations'];
title(str);
关于matlab - 如何使用MATLAB获取水中气泡的边界并输出坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51439632/
我目前面临的挑战之一是使用 CSS 沿着图像中的山脉定位不同数量的圆圈/气泡。让我们假设图像看起来像这样(没有红色气泡): 图像始终必须使用设备的整个宽度(100% 宽度)。设备的分辨率差异很大(手机
我在 css3 中创建了一个气泡,但在某些浏览器(特别是 Windows Safari 5.1.7)中,我的跨度溢出了我的 anchor 标记,即使 1) 它是相对定位的并且 2) 具有静态宽度/高度
我使用 e.preventDefault(); 来禁止滚动页面到无效的 input。我试过 scrollintoview(false),默认情况下将网站滚动到顶部,但它没有做任何事情。 现在,为了将页
我可以制作这样的气泡图吗?' 我试试这个:Highcharts naming of individual bubbles但不起作用:/ 最佳答案 是的,你可以,你提到的所有帖子都指明了方向。基础知识是
我想使用 API v.3 自定义谷歌地图上信息窗口(信息气泡)中的关闭按钮。有简单的方法吗?这意味着 api 正在提供此功能,或者是否有一个好的解决方法。 感谢您的帮助。 更新 我必须补充一点,我想更
我需要帮助将标记(气泡)添加到简单的内容幻灯片中,这将帮助用户在 div 之间切换。 HTML: // etc CSS: #slideshow { position:a
我正在使用 Qtip2 来显示 ajax 请求的返回。我想仅当用户单击它时才显示它。所以我看到了 show: 'click',hide: 'click' 属性,但它不起作用。 我尝试了一些简单的方法,
我正在尝试更改气泡系列的背景和线条颜色。 目前默认为深蓝色边框的蓝色。我希望边框是白色的,气泡背景是透明的。关于如何实现这一目标的任何想法? 谢谢 雅克 最佳答案 您可以设置一些 plotOption
如何在 jQuery Mobile 中的图标(数据图标)顶部添加计数气泡或徽章。有没有更好的方法将它添加为小部件而不是使用 CSS 进行操作?我希望从服务器动态更新计数。 最佳答案 这是我的徽章图标版
我想知道是否有一种方法可以将 ToolTip 组件添加到气泡中,以显示 Avatar Group 组件中的其他头像。这是组件如何呈现的示例:(图片来自 Material UI 文档(https://m
我正在寻找 Jquery 中的插件,我可以在其中实现 float 气泡。例如,如果我输入数字 5,它必须显示 5 个气泡。气泡的大小也会根据我的输入而增长......我怎样才能实现这一点? 最佳答案
我正在为我的网站创建一个聊天框。我在其中使用 css3 来创建消息设计。我在使用 Firefox 进行设计时遇到问题,它在 Chrome 中运行良好。 这是图片-- FireFox 浏览器: Chro
jsfiddle:https://jsfiddle.net/leiming/5e6rtgwd/ class Sample extends React.Component { onInputFocu
QQ最新免费设置“天使圣殿”和“星云天使”气泡 QQ最新两款BUG气泡 “天使圣殿”和“星云天使” 现在限时免费设置! 透明的特别好看!好东西记得随手转发给朋友一起设置! 天使圣殿气泡:h
您好,我只是想知道我们是否可以使用 Javascript 捕获 Chrome 中的允许 Flash 事件,并自定义显示的消息以及单击允许或阻止的事件。 最佳答案 TL;DR; 否 这是内置的浏览器功能
我有一个网站,它从服务器端获取一组点,然后使用 azure-maps-control npm 包渲染 map 。 我希望 map 居中并缩放,以适合屏幕上的所有点。 实现这一目标的最佳方法是什么? 最
我有一个网站,它从服务器端获取一组点,然后使用 azure-maps-control npm 包渲染 map 。 我希望 map 居中并缩放,以适合屏幕上的所有点。 实现这一目标的最佳方法是什么? 最
我正在将一个 iPhone 应用程序移植到 WP7,其中包含一张带有多个标记/图钉的 map ,这些标记/图钉是我从网络服务(位置、图标和标题)获得的。 我已经设置了显示 map 所需的 XAML 以
我知道 pdMarker(http://www.pixeldevelopment.com/pdmarker.asp) 可以与 Maps API v2 完美配合以生成自定义工具提示和气泡。但是对于 V3
按照 http://bl.ocks.org/mbostock/4063269 上发布的示例开发 d3 气泡图: 我的数据集只有一个分支但有很多子节点(请参见下面的示例)。我所有的气泡都以相同的颜色显示
我是一名优秀的程序员,十分优秀!