裁剪

2016-07-06 175 views
1

的任务,我想实现后获得一个ROI的原始坐标如下:裁剪

  1. 用户选择的感兴趣区域。
  2. 该ROI是从原始图像中裁剪出来的,并且使用各种图像处理技术来获得ROI中的多个对象(它们的质心)的坐标。

  3. 原始帧中的坐标是通过在两个坐标系之间转换获得的。

我的解决方案至今一直使用原来的ROI矩形的顶点坐标两个系统之间进行转换:

rectObj = getrect(gca); 
roi = rectObj.Position; % In [x0 y0 width height] format 
% Obtain seed coordinates in the cropped image 
seed_coords = [x y]; 
% Translate and obtain seed coordinates in the original image 
new_seed_coords = seed_coords + [roi(1) roi(2)]; 

但是,重心正在由一个小偏移量,我假设是由于ROI跨像素边界发生,这对我的值有一些舍入效应。

我怎样才能得到精确坐标(尽可能精确?)的矩形,所以我可以在原始框架中获得准确的坐标?

+0

定义“小数量” – excaza

+0

从种子坐标中减去[11]将质心标记返回到对象的实际质心以获得良好的近似(但不是精确的:即错误大小可能<1个像素)。 – Kalo

回答

1

对用户输入使用子像素精度毫无意义。用户甚至不太可能准确地击中某个像素。只需对这些值进行四舍五入,以避免在后续步骤中出现舍入问题