list_files ('E:/calibration_image', 'files'纳碰困, ImageFiles)
for Index := 0 to |ImageFiles|-1 by 1
read_image(Image, ImageFiles[Index])
endfor
注释:'E:/calibration_image':为图像路径,图像文件索引是从0开始的,所以|ImageFiles|(文件数量)减去1。
算子:read_image(:Image :FileName):读取名称为FileName的图像Image。
二、提取图像Images中标定板上的圆形标志来确定标定板的有效区域,算子如下:
find_caltab(Image:Caltab:CalTabDescrFile,SizeGauss,MarkThresh,MinDiamMarks:)
确定标定板上圆形标志点的二维坐洞念标,并得到摄像机外部参数的初始值,算子如下:
find_marks_and_pose (Image,CalTabRegion: :CalTabDescrFile
,StartCamParam ,StartThresh,
DeltaThresh,MinThresh,Alpha,MinContLength,MaxDiamMarks:Rcoord,Ccoord,
StartPose)
下面是一个用C++调用halcon函数的实例,说明://后面的部分为程序的说明,在程序运行中是不起作用的。
a) gen_image1_extern函数中的变量width,height必须为HTuple类型,Pointer指针为unsignedchar类型,输入时转换为long型。
b) width,height必须与Pointer指向的图像数链基据的长宽一致。
c) Pointer指针在gen_image1_extern函数调用之前分配了内存,之后不要马上释裂唤闭放,否则会出错。应该在确保不再使用Image变量之后再释放。halcon内部会自动释放Image,感觉没有释放Pointer(还需要进一步验证)。
d) 显示图像时,可能存在着图像的上下翻转,可以按照1中的方法,将图像数据翻转后再调用gen_image1_extern,或者使用肆裂halcon中的函数mirror_image()进行翻转。
BITMAPINFO*RotateBmpInfo
BYTE*bitBuffer
bitBuffer=NULL
bitBuffer=newBYTE[sizeof(BITMAPINFO)]
RotateBmpInfo=(BITMAPINFO*)bitBuffer
RotateBmpInfo->bmiHeader.biSize=sizeof(BITMAPINFOHEADER)
RotateBmpInfo->bmiHeader.biHeight =Height
RotateBmpInfo->bmiHeader.biWidth =Width
RotateBmpInfo->bmiHeader.biPlanes =1
RotateBmpInfo->bmiHeader.biBitCount=24
RotateBmpInfo->bmiHeader.biCompression =BI_RGB
RotateBmpInfo->bmiHeader.biSizeImage =Height*bytewidth
RotateBmpInfo->bmiHeader.biXPelsPerMeter=0
RotateBmpInfo->bmiHeader.biYPelsPerMeter=0
RotateBmpInfo->bmiHeader.biClrUsed =0
RotateBmpInfo->bmiHeader.biClrImportant =0
CWnd*m_pWnd
m_pWnd=AfxGetApp()->GetMainWnd()
CDC*pDC=m_pWnd->GetDC()
::StretchDIBits(
pDC->GetSafeHdc(),
Width+10,
Height+10,
从VC++到Halcon
unsignedchar*Pointer
intwidth,height
Pointer=newunsignedchar[width*height]
inti,j
for(i=0i<heighti++)
{
for(j=0j<widthj++)
{
Pointer[i*width+j]=j%255
}
}
HobjectImage
gen_image1_extern(&Image,"byte",(HTuple)width,(HTuple)height,(long)Pointer,NULL)
严格说需要标定标定目主森如贺要:1消除镜畸变2确定像素世界坐标关系通俗说像素等于少毫米及相橡租位置关系(般6外参数:XY,Z 向平移量及夹角)
说离CCD近拍图像比较离CCD远拍图像比较变焦镜或者通改变像距改变物距此派.
精度苛刻镜畸变及相机测物体垂直情况用标准品式代替标定:比直径10mm圆halcon拟合像素直径1000像素像素等于10/1000=0.01mm.........(要求聚焦准确)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)