vector_angle_to_rigid

vector_angle_to_rigid ( : : Row1 , Column1 , Angle1 , Row2 , Column2 , Angle2 : HomMat2D)

它只需要输入"源"的定位点坐标、倾斜角度 ,以及"目标"的定位点坐标、倾斜角度 ,它就能生成一个仿射变换矩阵用于配准

复制代码
*2预处理之车牌定位,一般定位有两种,一个是blob像素团块定位,一个是模板匹配定位,然后几何变换转正
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
*注意这里的颜色通道转换是为了方便图像分割
*这里的二值化是进行一个blob车牌定位
threshold (Saturation, Regions, 182, 255)
opening_rectangle1 (Regions, RegionOpening, 6, 6)
shape_trans (RegionOpening, RegionTrans, 'rectangle2')

*接下来求这个区域的角度和中心点,便于仿射变换转正
orientation_region (RegionTrans, Phi)
area_center (RegionTrans, Area, Row, Column)

*开始求解仿射变换之旋转矩阵,这里要注意是转到180度还是0度,需要注意你求解角度时的极轴方向
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(180), HomMat2D)
*将图像和区域都做这个旋转变换,然后抠图,再进行图像分割
affine_trans_image (Image, ImageAffinTrans, HomMat2D, 'constant', 'false')
affine_trans_region (RegionTrans, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
reduce_domain (ImageAffinTrans, RegionAffineTrans, ImageReduced)


*字符就被提取了,注意这里我暂时不是识别汉字,要识别汉字也是可以的,可以看视频链接
*进行字符排序方便识别后观察,从左到右
sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column')

read_image (Image, ImageFilesIndex)

find_shape_model (Image, ModelID, rad(-180), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, RowCur, ColumnCur, AngleCur, Score)

*得到现在图片与模板图 矩阵变化

vector_angle_to_rigid (RowModel, ColumnModel, AngleModel, RowCur, ColumnCur, AngleCur, HomMat2D)

vector_angle_to_rigid()------从点和角度计算刚性仿射变换。

vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)

vector_angle_to_rigid根据点对应关系和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵HomMat2D返回。

参数:

Row1 (输入参数) ------原始点的行坐标

Column1 (输入参数) ------原始点的列坐标

Angle1 (输入参数) ------原始点的角度

Row2 (输入参数) ------转换点的行坐标

Column2 (输入参数) ------转换点的列坐标

Angle2 (输入参数) ------转换点的角度

HomMat2D (输出参数) ------输出转换矩阵

affine_trans_contour_xld------对XLD轮廓进行任意仿射2D变换。

affine_trans_contour_xld(Contours : ContoursAffineTrans : HomMat2D : )

affine_trans_contour_xld将任意仿射2D变换,即缩放、旋转、平移和倾斜(倾斜)应用于轮廓中给定的xld轮廓,并以ContoursAffineTrans的形式返回变换后的轮廓。仿射变换由HomMat2D中给出的齐次变换矩阵来描述,它可以使用hom_mat2d_identity、hom_mat2d_scale、hom_mat2d_rotate、hom_mat2d_translate等运算符创建,也可以是向量_angle_to_rigid等运算符的结果。

齐次变换矩阵的组成部分解释如下:图像的行坐标对应于定义变换矩阵的坐标系的x,列坐标对应于定义变换矩阵的坐标系的y。这对于获得图像的右手坐标系是必要的。特别是,这样可以确保在正确的方向上执行旋转。注意,矩阵的(x,y)顺序与图像中坐标的通常(行、列)顺序相对应。

参数:

Contours (输入参数) ------输入XLD轮廓。

ContoursAffineTrans (输出参数) ------转换后的XLD轮廓

HomMat2D (输入参数) ------输入转换矩阵

相关推荐
孙启超1 小时前
【AI开发之Rust】第 3 课:字符串与复合类型 —— 数据怎么放
开发语言·人工智能·后端·rust·llm·transformer
t-think1 小时前
C++ string 类(上)—— string类初识与常用接口详解
开发语言·c++
cpp_learners2 小时前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
开发语言·c++·责任链模式
君顾12 小时前
外卖CPS软件开发实战:从系统架构到部署全流程指南
java·开发语言·外卖
AIFQuant2 小时前
Python实时外汇行情接入实战:WebSocket与REST K线查询
开发语言·python·websocket
名字还没想好☜3 小时前
Java NIO ByteBuffer 实战:flip/clear/compact 三个绕晕人的方法与 position/limit 心智模型
java·开发语言·后端·spring·nio
小溪学编程3 小时前
AQS 原理详解:从 CLH 队列到 ReentrantLock 的实现
java·开发语言
持敬chijing3 小时前
Web前后端开发-JavaScript 入门教程
开发语言·前端·javascript
2601_966949653 小时前
从轮询到策略消费:量化系统如何高效处理五档盘口数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
我命由我123454 小时前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11