我从我记录的值中生成了以下图像。我已将值转换为缩放图像,然后将其重新调整为36 x 52图像。
此图显示我使用过的值的放大版本。我需要做的是计算填充绿色的形状的长度和宽度。下图显示了我想要的内容。
我已将图像转换为二进制文件,然后尝试使用regionprops使用以下代码计算长度和宽度。
B = im2bw(A);
B1 = double(A);
Props = regionprops(B1,'MajorAxisLength','MinorAxisLength');
我没有获得突出显示区域的尺寸,而是获得了二进制值为1的所有区域。
我已经获得了绿色区域的长度和宽度以及黄色/橙色区域。如果我将rgb转换为二进制图像,我得到以下图像,而我想要的只是中心矩形的尺寸。
我获得的尺寸包括两侧的另外两个白色区域。我应该消除它们或仅计算矩形的尺寸如何继续寻找它的区域。或者还有其他方法吗?在此先感谢!!!
答案 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);
你应该得到你想要的东西。