如何使用matlab

时间:2017-07-24 03:31:40

标签: image matlab matlab-figure

我从我记录的值中生成了以下图像。我已将值转换为缩放图像,然后将其重新调整为36 x 52图像。

enter image description here

此图显示我使用过的值的放大版本。我需要做的是计算填充绿色的形状的长度和宽度。下图显示了我想要的内容。

enter image description here

我已将图像转换为二进制文件,然后尝试使用regionprops使用以下代码计算长度和宽度。

     B = im2bw(A);
     B1 = double(A);
     Props = regionprops(B1,'MajorAxisLength','MinorAxisLength');

我没有获得突出显示区域的尺寸,而是获得了二进制值为1的所有区域。

enter image description here

我已经获得了绿色区域的长度和宽度以及黄色/橙色区域。如果我将rgb转换为二进制图像,我得到以下图像,而我想要的只是中心矩形的尺寸。

enter image description here

我获得的尺寸包括两侧的另外两个白色区域。我应该消除它们或仅计算矩形的尺寸如何继续寻找它的区域。或者还有其他方法吗?在此先感谢!!!

1 个答案:

答案 0 :(得分:0)

我猜您的图片 A 的大小为36x52x3,其中3为红色,绿色和蓝色。 所以如果你替换

public ActionResult Index()
{
    List<MyClass> ofitems = _repository.GetMyClasses(); // contains db access logic

    // This actually can be in repository too:
    var byNodeId = ofitems.ToDictionary(x => x.ID, x => x);
    foreach (var node in ofitems)
    {
        // add current node to its parent's Children
        byNodeId[node.ParentID].Children.Add(node); 
    }

    ViewBag.ListText = TreeFormatter.Format(ofitems); 
    return View();
}

使用以下代码:

B = im2bw(A);
你应该得到你想要的东西。