推广 热搜: LabVIEW  控制  自动化  电子  自动  软件  sci  机器视觉  编程  视觉 

polar_trans_image_ext 极坐标到笛卡尔坐标转换

   日期:2018-12-29     浏览:45    评论:0    
核心提示:polar_trans_image_ext(Image: PolorTransImage: Row,Column,AngleStart,AngleEND,RadiusStart,RadiusEnd,Width,Height,Interpo
polar_trans_image_ext
 
(Image: PolorTransImage: Row,Column,AngleStart,AngleEND,RadiusStart,RadiusEnd,Width,Height,Interpolation: )
 
把一个图像中的环形弧转变成极坐标;
 
   Image: 输入要变换的环状弧形图像
 
   PolorTransImage : 输出水平矩形的图像
 
   Row:输入环形弧的中心Y值坐标
 
   Column: 输入环形弧的中心X值坐标
 
   AngleStart:输入环形弧的起始角度
 
   AngleEND:输入环形弧的终止角度
 
   RadiusStart:输入环形弧的内圆弧半径
 
   RadiusEnd:输入环形弧的外圆弧半径
 
   Width:输入矩型图像的宽度
 
   Height:输入矩形图像的高度
 
   Interpolation:图像变换方式 (参考:“nearest_neighbor”邻近元素,“bilinear”双线性)
 
complement (Region:RegionComplement::) : 输入一个区域,返回这个区域的补集 (用全部窗口区域减去该区域
 
union1(Region:RegionUnion::) :输入一个区域,返回这个区域的并集 (与全部窗口区域找交集)
 
difference (Region1:Region:DifferenceRegion: ) :计算两个区域的差集,第一个区域(Region)减去第二区域(Sub),将第1个区域多余的部分形成一个新的区域。
 
Intersection (Region1:Region2:RegionInterection::) :计算两个区域的并集,将相同的部分形成一个新的区域;
 
Symm_difference (Region1:Region:RegionDifference) :计算两个区域并集的补集并返回(用这两个区域减去这两个区域的交集)
 
Uniou2 (Region1:Region2:RegionUnion::) :返回两个区域的并集以及自身 (并集加上其他区域合并成一个大区域)
 
smallest_circle (Region::Row, Column, Radius)提取一个区域的最小半径
 
Row: 输出半径对应的Y值坐标
 
Column: 输出半径对应的X值坐标
 
Radius: 输出该区域的最小半径 (Radius >=0)
 
 
zoom_image_factor(Image:  ImageZoomed:  ScaleWidth, ScaleHeight, Interpolation)
 
把一个图像缩放到指定比例的大小
 
   ScaleWidth: 宽度缩放倍数
 
   ScaleHeight: 高度缩放的倍数
 
   Interpolation: 篡改类型
 
 
dev_set_window_extents(::Row, column, Width, Heigth :)
 
 对激活窗口进行位置,大小的改变
 
   Row: 窗口的左上角(默认X=0,Y=0)
 
   Column:
 
   Width: 窗口的宽度以及高度 (最大为-1,-1,但是不能为0)
 
   Height:
 
 
*======================分割线=========================================
 
dev_update_window ('off')
 
dev_close_window ()
 
read_image
 
(Image, 'C:/Users/Administrator/documents/HalconExport/Image/circular_barcode.png')
 
get_image_size (Image, Width, Height)
 
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowID)
 
dev_display (Image)
 
 
 
*Blob三部曲:二值化,connection,特征选择,得到圆环
 
threshold (Image, Regions, 16, 113)
 
connection (Regions, ConnectedRegions)
 
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 93621, 111257)
 
 
 
*将圆环坐最小外截圆修正,以便计算圆环外圆的坐标以及半径
 
shape_trans (SelectedRegions, RegionTrans, 'outer_circle')
 
 
 
*最小外截圆减去圆环,得到圆环里面的小圆
 
difference (RegionTrans, SelectedRegions, RegionDifference)
 
 
 
*Blob变换,排除干扰,得到圆环内圆
 
connection (RegionDifference, ConnectedRegions1)
 
select_shape (ConnectedRegions1, SelectedRegions2, 'area', 'and', 234762, 440476)
 
 
 
*将内截圆修正,以便计算圆环内圆的坐标以及半径
 
shape_trans (SelectedRegions2, RegionTrans1, 'outer_circle')
 
 
 
*计算外圆和内圆的坐标以及半径
 
smallest_circle (RegionTrans, OUTRow, OUTColumn, OUTRadius)
 
smallest_circle (RegionTrans1, INTRow, INTColumn, INTRadius)
 
 
 
*设定变换后矩形的长和宽
 
WidthPolar := 1440
 
HeightPolar := OUTRadius - INTRadius
 
 
 
*将一个圆环变成矩形
 
polar_trans_image_ext (Image, PolarTransImage, OUTRow, OUTColumn, rad(360), 0, INTRadius, OUTRadius, WidthPolar, HeightPolar, 'bilinear')
 
 
 
*改变窗口以便适应矩形
 
dev_set_window_extents (0, 0, WidthPolar/2, HeightPolar)
 
 
 
dev_display (PolarTransImage)
 
打赏
 
更多>同类编程
0相关评论

推荐图文
推荐编程
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报