halcon的默认图像坐标系是怎么样的?
一个非常简单的问题,搞了半天=-=
===============================================================
先说结论:
在Halcon的坐标系统中,图像的最左上角为原点(0,0),其坐标轴方向遵循以下规则:
- x轴方向:向右延伸(水平方向),因此往右移动时,x坐标值增加。
- y轴方向:向下延伸(垂直方向),因此往下移动时,y坐标值增加。
但halcon所用的坐标形式 为(Y,X)
=================================================================
记录一下过程:
一张图
我就想知道,在halcon中,往下的是X轴 还是往右的是X轴,
于是我问 AI
得到答案:
-- ------------------------------------------------>X
|
|
|
v
Y
这张图,放halcon中,得到w,h
read_image (Image, 'C:/Users/86957/Desktop/x_y.png')
get_image_size(Image, Width, Height)
-- ------------------------------------------------>1060
|
|
v 610
似乎没有问题。
======================================================
现在我想在左下角画圆,应该X = 0 ,Y = 610
代码:
read_image (Image, 'C:/Users/86957/Desktop/x_y.png')
get_image_size(Image, Width, Height)
*width = 1060;height = 610
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
*在左下角画圆
gen_circle(Circle, 0, 610, 10)
* 显示图像和标记
dev_display(Image)
dev_display(Circle)
居然跑右上 去了
互换X,Y成功。
我跑去问AI
原来halcon用反人类的(Y,X),很是奇怪。
我换个问题问AI
我又懵逼了,说好的(Y,X)=(400,0) Y = 400应该是左下角呢。
然后,他改正了 =-=。
所以对于 横1060 竖610 的图 ,在最右下角 画圈,坐标为(Y,X) = (610,1060)
运行后:没有问题。
======================================================
那么问题来了,同样是(row,column)
为什么dev_open_window和gen_circle不一样呢?
真叫人头大=-=