找回密码
 立即注册

QQ登录

只需一步,快速开始

coder_fang

注册会员

19

主题

53

帖子

188

积分

注册会员

积分
188
coder_fang
注册会员   /  发表于:2018-10-25 09:06  /   查看:4203  /  回复:5
画一矩形标注,可以正确计算面积,但旋转矩形之后,面积不正确:
代码如下
var imgRect = SubCells[ImgIndex].AnnotationContainer.Mapper.RectFromContainerCoordinates(rect.Bounds, AnnFixedStateOperations.None);
lb.Text = "Area:" + string.Format("{0:N3}", imgRect.Height * imgRect.Width);



5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-25 09:43:23
沙发
您好,您代码里计算的应该是容器的面积,也就是外面的矩形的面积,所以旋转后会变大,建议您参考下面的代码,
cell即是当前选中的单元格

  1.             MedicalViewerMultiCell cell = (MedicalViewerMultiCell)GetSelectedCell();
  2.             if (cell != null)
  3.             {
  4.                 AnnAutomation ann = (AnnAutomation)cell.AutomationObject;
  5.                 foreach (AnnObject obj in ann.Container.Children)
  6.                 {
  7.                     if (obj is AnnRectangleObject)
  8.                     {
  9.                         AnnLabel label;
  10.                         AnnRectangleObject rect= (AnnRectangleObject)obj;
  11.                         // rect.Labels.TryGetValue("RulerLength", out label);
  12.                         //if (label != null)
  13.                         //    MessageBox.Show(label.Text.ToString());
  14.                         MessageBox.Show((rect.Rect.Width*rect.Rect.Height).ToString());

  15.                     }
  16.                 }
  17.             }
复制代码
回复 使用道具 举报
coder_fang
注册会员   /  发表于:2018-10-25 10:57:01
板凳
3q,非常感谢,但我想映射到图像上,也就是要获取图像上此区域的相关数据,怎么弄。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-29 10:56:38
地板
coder_fang 发表于 2018-10-25 10:57
3q,非常感谢,但我想映射到图像上,也就是要获取图像上此区域的相关数据,怎么弄。

我不太明白您的意思,标注的体积目前已经可以成功获取
回复 使用道具 举报
coder_fang
注册会员   /  发表于:2018-10-30 07:58:06
5#
Richard.Ma 发表于 2018-10-29 10:56
我不太明白您的意思,标注的体积目前已经可以成功获取

你好,我不但要获取体积,还要获取此区域内相关的灰度值 ,比如最大值 与最小值 或平均值,这个体积是没有问题的,但怎么在图像上来使用此矩形呢,我已翻了很久的leadtool文档,现在也没找到
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-30 17:30:52
6#
这个确实是没有相关的方法的,获取区域内的某个坐标的属性,倒是可以进行坐标转换,然后取得灰度值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部