halcon实战图片旋转
dev_close_window ()
read_image (Image,'F:/Download/images/blob1.jpg')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
median_image (Image, ImageMedian, 'circle', 15, 'mirrored')
#对图片进行中值滤波
binary_threshold (ImageMedian, Region, 'smooth_histo', 'light', UsedThreshold)
#二值化
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 211589, 241536)
#区域选择
shape_trans (SelectedRegions, RegionTrans,'ellipse')
#外接椭圆
area_center (RegionTrans, Area, Row, Column)
#求面积和中心点坐标
orientation_region (RegionTrans, Phi)
#椭圆长中轴线与水平线的夹角
vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)
#围绕着所求的中心点坐标从Phi旋转到0度,生成旋转矩阵
affine_trans_image (Image, ImageAffineTrans, HomMat2D, 'constant', 'false')
#将旋转矩阵应用到整幅图片
affine_trans_region (SelectedRegions, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
#将旋转矩阵应用到所选区域
原图(网上随便百度的图片)
中值滤波后的图片
二值化后的图片(二值化后的变量是区域而不是图片)
区域选择后
外接椭圆
图片旋转后的结果
区域旋转后的结果
总览
旋转前
旋转后
记录学习轨迹。。。