Halcon区域几何变换和仿射变换
算子参数:
move_region(Region : RegionMoved : Row, Column : )
1.Region(输入要移动的区域)
2.RegionMoved(输出移动后区域)
3.Row(输入要移动区域的向量的行距离 point.y )
4.Column(输入要移动区域的向量的列距离 point.x)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
dev_set_draw ('margin')
dev_clear_window ()
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
area_center (Region, Area, Row1, Column1)
Button := 1
while (Button == 1)
* 获取鼠标点击的坐标
get_mbutton (WindowID, Row, Column, Button)
*两个坐标相减得出要平移的距离
move_region (Region, RegionMoved, Row - Row1, Column - Column1)
endwhile
效果图:

算子参数:
zoom_region(Region : RegionZoom : ScaleWidth, ScaleHeight : )
1.Region(输入要缩放的区域)
2.RegionZoom(输出缩放后区域)
3.ScaleWidth(输入x 方向的要缩放的比例)
4.ScaleHeight(输入y 方向的要缩放的比例)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
*画一个区域
draw_region (Region, WindowID)
*对图像进行放大两倍
zoom_region (Region, RegionZoom, 3, 3)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionZoom)
效果图:

算子参数:
mirror_region(Region : RegionMirror : Mode, WidthHeight : )
1.Region(输入要镜像的区域)
2.RegionMirror(输出镜像后区域)
3.Mode(输入对称轴, 'column‘ 或者 ‘row’)
4.WidthHeight(输入对称轴坐标的两倍,也就是窗口的宽或者高)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
mirror_region (Region, RegionMirror1, 'row', 512)
mirror_region (Region, RegionMirror2, 'column', 512)
mirror_region (RegionMirror2, RegionMirror3, 'row', 512)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionMirror1)
dev_set_color ('blue')
dev_display (RegionMirror2)
dev_set_color ('magenta')
dev_display (RegionMirror3)
效果图:

算子参数:
transpose_region(Region : Transposed : Row, Column : )
1.Region(输入要倒置的区域)
2.Transposed(输出倒置后区域)
3.Row(输入参考点的行坐标 point.y )
4.Column(输入参考点的列坐标 point.x )
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* 自定义画一个区域
draw_region (Region, WindowID)
*根据256,256这个坐标进行倒置
transpose_region (Region, Transposed, 256, 256)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (Transposed)
效果图:

算子说明:
affine_trans_region对给出的区域应用任意仿射二维变换,即缩放、旋转、平移和倾斜(倾斜),并返回变换后的区域。
算子参数:
affine_trans_region(Region : RegionAffineTrans : HomMat2D, Interpolate : )
1.Region(输入要变换的区域)
2.RegionAffineTrans(输出转换后的区域)
3.HomMat2D(输入输入变换矩阵)
4.Interpolate(输入是否使用插值进行转换) 列表:‘constant’、‘nearest_neighbor’
算子说明:
hom_mat2d_identity生成当前描述相同二维变换 的齐次变换矩阵
算子参数:
hom_mat2d_identity( : : : HomMat2DIdentity)
1 .HomMat2DIdentity(输出变换矩阵)
算子参数:
hom_mat2d_translate( : : HomMat2D, Tx, Ty : HomMat2DTranslate)
1.HomMat2D(输入变换矩阵)
2.Tx(输入沿 x 轴平移多少)
3.Ty(输入沿 y 轴平移多少)
4.HomMat2DTranslate(输出变换后矩阵)
算子参数:
hom_mat2d_scale( : : HomMat2D, Sx, Sy, Px, Py : HomMat2DScale)
1.HomMat2D(输入变换矩阵)
2.Sx(输入沿 x 轴的缩放比例)
3.Sy(输入沿 y轴的缩放比例)
4.Px(输入变换的固定点(x 坐标))
5.Py(输入变换的固定点(y 坐标))
6.HomMat2DScale(输出变换矩阵)
算子参数:
hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)
1.HomMat2D(输入输入变换矩阵)
2.Phi(输入旋转角度)
3.Px(输入变换的固定点(x 坐标))
4.Py(输入变换的固定点(y 坐标))
5.HomMat2DRotate(输出变换矩阵)
综合实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
*根据当前区域创建矩阵
hom_mat2d_identity (HomMat2DIdentity)
*旋转
hom_mat2d_rotate (HomMat2DIdentity, -0.3, 256, 256, HomMat2DRotate)
*缩放
hom_mat2d_scale (HomMat2DRotate, 1.5, 1.5, 256, 256, HomMat2DScale)
*平移
hom_mat2d_translate (HomMat2DScale, 64, 64, HomMat2DTranslate)
affine_trans_region (Region, RegionAffineTrans, HomMat2DTranslate, 'nearest_neighbor')
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionAffineTrans)
图像效果:

算子说明:
vector_angle_to_rigid从点对应和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵返回。
算子参数:
vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)
1.Row1(输入原点的行坐标) point.y
2.Column1(输入原点的列坐标) point.x
3.Angle1(输入原点的角度)
4.Row2(输入变换点的行坐标) point.y
5.Column2(输入变换点的列坐标) point.x
6.Angle2(输入变换点的角度)
7.HomMat2D(输出输出变换矩阵)
算子说明:
affine_trans_image对给出的图像应用任意仿射二维变换,即缩放、旋转、平移和倾斜(倾斜),并返回变换后的图像
算子参数:
affine_trans_image(Image : ImageAffineTrans : HomMat2D, Interpolation, AdaptImageSize : )
1.Image(输入要变换的图像)
2.ImageAffineTrans(输出变换后图像)
3.HomMat2D(输入变换矩阵)
4.Interpolation(输入插值类型)值列表:‘bicubic’、‘bilinear’、‘constant’、‘nearest_neighbor’、‘weighted’
5.AdaptImageSize(输入是否调整结果图像的大小)值列表:“false”、“true”
点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度; 在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。
我知道还有其他相同的问题,但他们没有解决我的问题。我不断收到错误:Aws::Errors::MissingRegionErrorinBooksController#create,缺少区域;使用:region选项或将区域名称导出到ENV['AWS_REGION']。但是,这是我的配置开发.rb:config.paperclip_defaults={storage::s3,s3_host_name:"s3-us-west-2.amazonaws.com",s3_credentials:{bucket:ENV['AWS_BUCKET'],access_key_id:ENV['AWS_ACCE
我正在使用适用于Ruby的AWS开发工具包向Rails3应用程序发布消息和AWSSNS主题,如下所示:sns=AWS::SNS.newtopic=sns.topics['arn:aws:sns:eu-west-1:55555555555:my_topic']topic.publish("MESSAGE",:subject=>"SUBJECT")当我发布到“us-east-1”中的主题时,它按预期工作,但发布到“eu-west-1”区域中的主题时不起作用:AWS::SNS::Errors::InvalidParameter-Invalidparameter:TopicArn:使用AWSS
我正在构建一个应该在服务器上运行并分析声音文件的工具。我想在Ruby中执行此操作,因为我的所有其他工具也是用Ruby编写的。但我很难找到完成此任务的好方法。我发现的很多例子都是在做可视化和图形化的东西。我只需要FFT数据,仅此而已。我既需要获取音频数据,又需要对其进行FFT。我的最终目标是计算一些东西,例如所有频率(加权幅度)的均值/中值/众数、第25个百分位数和第75个百分位数、BPM,也许还有其他一些好的特性,以便以后能够将相似的声音聚集在一起.首先,我尝试使用ruby-audio和fftw3,但我从未将两者真正结合使用。文档也不好,所以我真的不知道有什么数据被洗牌了。接下来,我尝
1.变换1.1什么是变换?变换(Transform)是计算机图形学中非常重要的一部分。变换包含模型变换(Modelingtransform)以及视图变换(Viewtransform)。模型变换指的是变换模型(被拍摄物体)的位置,大小和角度;视图变换指的是变换照相机的位置和角度。从相对运动的角度来看,两种变换是可以相互转化的。1.2模型变换1.2.1二维变换缩放变换缩放变换(Scale)中,如果一个图片以原点(0,0)为中心缩放𝑠倍。那么点(𝑥,𝑦)变换后数学形式可以表示为写成矩阵形式为:当然,我们也可以给x轴和y轴不同的缩放倍数𝑠𝑥和𝑠𝑦。在非均匀情况下,缩放变换的矩阵形式为反射变换反射变换(
我想从我的S3容器中读取照片的几何形状。当它在我的本地时,这是有效的:defphoto_geometry(style=:original)@geometry||={}@geometry[style]||=Paperclip::Geometry.from_filephoto.path(style)end但是当我将模型切换到S3时它似乎不起作用。有什么建议吗?更大的故事是,我正在尝试编写一些代码,允许我从S3检索照片,允许用户裁剪它们,然后将它们重新上传回S3,仍然由回形针分配。编辑:这是返回的错误:Paperclip::NotIdentifiedByImageMagickError:ph
使用带有以下gem的Rails3.2.8的应用程序gem'friendly_id','~>4.0'gem'route_translator'在/config/initializers/i18n.rbTLD_LOCALES={"com"=>:en,"jobs"=>:en,"net"=>:en,"in"=>:en,"de"=>:de,"ch"=>:de,"at"=>:de,"br"=>:pt,"ar"=>:es,"cl"=>:es,"mx"=>:es}在/app/controllers/application_controller.rb中,使用前置过滤器为每个请求设置语言环境:before
我有一个包含时间的变量foo,比如说今天下午4点,但是时区偏移量是错误的,即它处于错误的时区。如何更改时区?当我打印它时,我得到了FriJun2607:00:00UTC2009所以没有偏移量,我想将偏移量设置为-4或东部标准时间。我希望能够将偏移量设置为Time对象的一个属性,但这似乎不可用? 最佳答案 你没有明确说明你是如何获得实际变量的,但既然你提到了Time类,所以我假设你有时间使用它,我会在我的回答中提到它时区实际上是Time类的一部分(在您的情况下,时区显示为UTC)。作为Time.now响应的一部分,Time.now
我有这个日期时间:=>Fri,03Feb201211:52:42-0500如何删除ruby中的区域(-0500)?我只想要这样的东西:=>Fri,03Feb201211:52:42 最佳答案 时间总有一个区(没有区就没有意义)。您可以使用DateTime#strftime在打印时选择忽略它:now=DateTime.nowputsnow#=>2012-02-03T10:01:24-07:00putsnow.strftime('%a,%d%b%Y%H:%M:%S')#=>Fri,03Feb201210:01:24参见Time#st
我有下面的图表,其中有两条线http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-basic/series:[{name:'Tokyo',data:[7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6]},{name:'London',data:[3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]