一、实验要求:把图片中的书摆正。

二、实现代码(仅旋转)

**************************************旋转变换*************************************
read_image (Image, 'C:/Users/86159/Pictures/Saved Pictures/1作业图片/5-2-1.jpg')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
*定义仿射变换矩阵,生成相同二维变换的齐次变换矩阵
hom_mat2d_identity (HomMat2DIdentity)
*旋转变换:在上面变换矩阵HomMat2DIdentity中增加旋转变换,-2.7:逆时针旋转角度2.7,以图中心点为基准(可另设具体点)
hom_mat2d_rotate (HomMat2DIdentity, -2.7, Width/2, Height/2, HomMat2DRotate)
*仿射变换:旋转。针对Image做仿射变换(只旋转),ImageAffineTrans为变换后图
affine_trans_image (Image, ImageAffineTrans, HomMat2DRotate, 'constant', 'false')
dev_display (ImageAffineTrans)
disp_message (WindowHandle, '影之森', 'window', 20,20, 'black', 'true')
**************************************旋转变换*************************************

三、实验效果图:

仅用到旋转变换

四、改进代码(理解旋转、缩放、平移)

****************************旋转、缩放、平移变换比较代码***************************
read_image (Image, 'C:/Users/86159/Pictures/Saved Pictures/1作业图片/5-2-1.jpg')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)*定义仿射变换矩阵,生成相同二维变换的齐次变换矩阵,初始矩阵
hom_mat2d_identity (HomMat2DIdentity)
*旋转变换:在上面变换矩阵中增加旋转变换,-2.7:逆时针旋转角度2.7,以图中心点为基准(可另设具体点)
hom_mat2d_rotate (HomMat2DIdentity, -2.7, Width/2, Height/2, HomMat2DRotate)
*缩放变换:在旋转后的图(HomMat2DRotate)中,缩小1.1倍,以图中心点为基准。
hom_mat2d_scale (HomMat2DRotate, 1.1, 1.1, Width/2, Height/2, HomMat2DScale)
*平移变换:在旋转及缩放的图(HomMat2DScale)中平移,平移量为32行、32列。
hom_mat2d_translate (HomMat2DScale, 32, 32, HomMat2DTranslate)*仿射变换:旋转。针对Image做仿射变换(只旋转),ImageAffineTrans为变换后图
affine_trans_image (Image, ImageAffineTrans, HomMat2DRotate, 'constant', 'false')
*仿射变换:旋转+缩放。针对Image做仿射变换(旋转+1.1倍缩放),ImageAffineTrans1为变换后图affine_trans_image (Image, ImageAffineTrans1, HomMat2DScale, 'constant', 'false')
*仿射变换:旋转+缩放+平移。针对Image做仿射变换(旋转+1.1倍缩放+平移),ImageAffineTrans2为变换后图affine_trans_image (Image, ImageAffineTrans2, HomMat2DTranslate, 'constant', 'false')dev_display (ImageAffineTrans)
dev_display (ImageAffineTrans1)
dev_display (ImageAffineTrans2)
disp_message (WindowHandle, '影之森', 'window', 20,20, 'black', 'true')
**************************旋转就、缩放、平移变换比较代码*****************************

五、总结

仿射变换(旋转、缩放、平移)套路:
1.定义矩阵: hom_mat2d_identity()
2.旋转、缩放、平移算子: hom_mat2d_rotate\scale\translate()
3.仿射变换: affine_trans_image()

Halcon仿射变换图片(旋转、缩放、平移)相关推荐

  1. Unity3D使用鼠标旋转缩放平移视角

    Unity使用鼠标旋转缩放平移视角 用代码在Game界面完美实现Scene界面的操作方法. 使用方法:把脚本挂在相机上,把跟踪的target拖到脚本上. 视角跟踪的是一个空物体,当然如果你是做RPG游 ...

  2. 图片(旋转/缩放/翻转)变换效果(ccs3/滤镜/canvas)

    以前要实现图片的旋转或翻转,只能用ie的滤镜来实现,虽然canvas也实现,但ie不支持而且不是html标准. css3出来后,终于可以用标准的transform来实现变换,而canvas也已成为ht ...

  3. iOS transform解决连续多次旋转缩放,实现图片旋转缩放效果

    一.需求 实现imageView的缩放旋转效果,一般有两种方式: 1.底层加scrollview,利用scrollview的属性实现.(推荐这种,这是我比较后发现的,手势做缩放旋转会有点弊端) 2.利 ...

  4. 前端学习:jQuery--轮播图,旋转缩放平移动画,仿华为商城案例

    1.火狐浏览器超好用的网页翻译插件 火狐浏览器超好用的网页翻译插件_m0_59805351的博客-CSDN博客_火狐翻译插件哪个好学习目标:自主安装火狐浏览器网页翻译插件学习内容:提示:这里可以添加要 ...

  5. css 中图片旋转,倾斜,位移,平滑

    在开发中,我们常常需要对图片有一些绚丽的效果,比如是图片旋转,平移,倾斜等.其实这些在css3中都已经存在,整理下作为demo,以后参考使用,也希望供大家交流学习.如果不足,多多指导. <!DO ...

  6. python如何移动图片_python之详细图像仿射变换讲解(图像平移、旋转、缩放、翻转),一文就够了,赶紧码住...

    仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方. 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向 ...

  7. 图像的仿射变换原理及c++实现(旋转,平移,缩放,偏移,组合变换)

    github地址:https://github.com/2209520576/Image-Processing-Algorithm 一.写在前面 几何空间变换是图像处理中的最基础的算法,主要包括图像的 ...

  8. halcon窗体的移动和缩放_Halcon hWindowControl 鼠标缩放平移区域模板匹配绘制

    如题所示标题,想同时表达两个意思:1:缩放平移绘制区域,2:创建模板匹配区域并保存.被一个技术问题卡住折腾了近大半天时间+熬夜2个小时,经过不懈努力,反复验证各参数意义,找到了问题的原因,终于攻克难题 ...

  9. 生成组合仿射变换矩阵,裁剪+缩放+平移+斜切+旋转

    前言 在翻以前oschina上写的博客的时候,看到这篇觉得还挺有趣的,就重新修改并添加一些新的内容发到再公号上. 一般对图像做 augmentation 都会用仿射变换去实现,如果是用OpenCV来实 ...

  10. OpenCV 图像旋转、平移、缩放

    本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize().旋转 cv2.flip().平移 cv2.warpAffine()等操作. OpenCV 图像旋 ...

最新文章

  1. UFLDL:稀疏自编码器
  2. NoSQL数据库探讨之一 - 为什么要用非关系数据库?
  3. Python matplotlib 和PIL
  4. php mysql 绑定变量,在MYSQL中,怎么用PDO绑定变量的方式插入数据?
  5. python程序打包为exe可执行文件
  6. web测试与app功能测试的区别
  7. Nginx负载均衡配置+keepalived高可用
  8. hive拉链表方案二
  9. Fragment的知识总结
  10. oracle sysoper角色,Oracle sys和system用戶、sysdba 和sysoper系統權限、sysdba和dba角色的區別...
  11. RootMe--HTTP verb tampering
  12. semilogx 多条曲线_如何在excel中绘制多条曲线
  13. system libzip must be upgraded to version >= 0.11
  14. 51单片机:8051指令简介
  15. 谷歌浏览器提示adobeflashplayer已过期
  16. 手游服务器微信互通,9月14日部分服务器数据互通公告
  17. linux下安装mysql问题:mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql.pid ended
  18. android 控制POS机图文打印(一)
  19. Typora:明明保存了,但是却内容丢失了
  20. 区块链行业领袖汇聚一堂,共同畅谈IEO

热门文章

  1. 蓝牙双模音频模块 BT401蓝牙BLE应用笔记
  2. 如何用手机修改证件照尺寸大小
  3. PHP怎么做成Qq空间相册,美化QQ空间相册的照片4步走 让你轻松学会PS
  4. 偏差、误差、训练误差、测试误差
  5. 百度 tts 语音合成前端无法播放问题解决
  6. 28部漫威电影按漫威时间全梳理
  7. 判断字符串是否对称 C语言,c语言 判断字符串是否中心对称
  8. 皮尔逊(Pearson)相关系数 - 公式和代码实现
  9. Vue项目-2首页开发(header)
  10. 网易涉暴力裁员引众怒 5大争议背后是否违法?