我面临一个众所周知的问题,我无法解决.我有一张根的图片(http://cl.ly/image/2W3C0a3X0a3Y).从这张照片中,我想知道最长根的长度(第一个问题),大根的部分和小根的百分比(说直径作为第二个问题的方向).重要的是,我可以区分细根和大根,因为这或多或少是研究的目的(它们的一部分在不同物种之间进行比较).最后一件事,我想沿测量的最长根绘制一条线来检查是否所有测量都正确.
对于最长根的长度,我尝试使用regionprops(),这不是最佳的,因为如果我这样做,假设椭圆形为基本形状.但是,我真正需要支持的事实是:
如何获得最长根的长度(起始点应该是最长根离开主根的最大直径的位置)?有可能区分细根和大根,我可以得到它们的一部分吗?(硬币,图像中的圆形物体是参考)我可以在图片中绘制长度和直径等属性吗?
我发现了如何绘制椭圆和东西的中心,但我只是不明白如何用提出的值来做.
我希望这不是双重帖子,这个问题在其他地方不存在,如果是的话,我很抱歉.
我要感谢这个论坛上的人们,你做得很好,有问题的每个人都很幸运能有你在这里.
谢谢你的帮助,菲利普
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%编辑
我按照提出的解决方案,直到现在的代码如下:
clc
clear all
close all
img=imread('root_test.jpg');
labTransformation = makecform('srgb2lab');
labI = applycform(img,labTransformation);
%seperate l,a,b
l = labI(:,:,1);
a = labI(:,:,2);
b = labI(:,:,3);
level = graythresh(l);
bw = im2bw(l);
bw = ~bw;
bw = bwareaopen(bw, 200);
se = strel('disk', 5);
bw2=imdilate(bw, se);
bw2 = imfill(bw2, 'holes');
bw3 =bwmorph(bw2, 'thin', 5);
bw3=double(bw3);
I4 = bwmorph(bw3, 'skel', 200);
%se = strel('disk', 10);%this step is for better visibility of the line …Run Code Online (Sandbox Code Playgroud) 我想用简单(但很糟糕)的数据集做一个简单的成对wilcox测试.我有8组,每组有5个值(见下面的数据).这些组在列"id"中,并且感兴趣的变量(在这种情况下是权重)是"权重".我尝试的是:
pairwise.wilcox.test(dat$weight,dat$id, p.adj = "bonf")
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果:
286x306 286x339 286x574 547x286 574x519 574x542 574x547 587x210 589x286
286x339 0.36 - - - - - - - -
286x574 1.00 1.00 - - - - - - -
547x286 0.36 1.00 0.36 - - - - - -
574x519 0.36 0.36 0.36 0.72 - - - - -
574x542 0.36 0.36 0.36 0.36 0.36 - - - -
574x547 0.36 0.36 0.36 1.00 0.36 0.36 - - -
587x210 1.00 1.00 1.00 0.36 …Run Code Online (Sandbox Code Playgroud)