Tag: 边界

如果区域已经填满,请阻止修补

这对我的代码来说是一个相当艰巨的挑战。 首先,我放在这里的代码是不能运行的,因为我使用了一个Excel工作表(但是如果有人想要使用我的代码,我很乐意给你发邮件)。 我所拥有的是一张Excel数据表,其中包含我所取得的显微图像中的横截面纤维数据。 信息基本上是:部分的location , area ,旋转angle 。 从这个angular度我计算了Phi和Gamma。 之后,我使用散射函数为每个Phiangular度值绘制不同颜色的点。 我在10度的范围内使用了一个不变的颜色。 这给了我一个像这样的图片: 现在我的目标是计算每个同质区域的面积。 所以我寻找一种方法来让我们说-10 + 10区域内的所有点(我现在正在做20度,但之后会做10点)。 我用了一下,我得到了这样的图片: 白色对应的点在我select的范围内。 之后,我使用MATLAB中的工具箱将每个点转换为一个像素。 所以我会得到一个白色像素负载的黑色背景,然后我使用imdilate做圆圈,填充洞,并用特定的颜色隔离每个区域。 最后我使用函数边界和补丁来创build每个边界并填充颜色。 我得到这样的图片: 这是我想要的,我可以得到每个地区的面积和总面积(我用一个门槛来放弃小面积)。 然后我为每个区域运行代码几次,然后使用imfuse将它们放回到一起,看看它是什么样的。 问题是,它们重叠了很多,这是因为我的数据有一些错误,所以一些蓝色的点会变成红色等等。 所以我想运行一次代码,然后当我用另一个范围重新运行它时,它会做同样的事情,但是在之前已经绘制了某些东西时没有考虑到这个值。 我试图这样做,运行一次后,保存matrixbw4,并添加一个条件,当绘制黑白图片,说如果披是在我的范围内,这里没有白色,那么你可以把白色,否则它是黑色的。 但似乎没有工作。 我知道这是一个相当复杂的事情来解释,但我会很感激任何想法,并通过电子邮件或其他方式开放聊天。 我现在把完整的代码,我可以发送给你我的Excel表,如果你想在你的计算机上运行,​​并为自己看。 clearvars -except data colheaders bw4 close all clc %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% CHANGE DATA FOR EACH SAMPLE %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cd 'C:\Users\dkarta\Desktop\Sample 12\12.6' data=xlsread('Sample12_6res.xlsx'); cd 'C:\Users\dkarta\Documents\MATLAB' %data=Sample121res; […]