在Halcon中有两个用于图像旋转的函数:

1,rotate_image

*Image和ImageRotate分别是输入和输出图像

*Phi是输入的旋转度数

*interpolation是内插方式,默认为'constant'

rotate_image(Image : ImageRotate : Phi, Interpolation : )

2,affine_trans_image

*开辟一个旋转矩阵
()hom_mat2d_identity (HomMat2D)
*为旋转矩阵赋值
*HomMat2D是输入的旋转矩阵
*Phi是输入的旋转角度
*Px和Py分别是输入的旋转中心x坐标值和y坐标值
*HomMat2DRotate是输出的旋转矩阵
()hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)
*实施旋转
*Image : ImageAffinTrans分别为输入输出图像
*HomMat2D是赋值后的旋转矩阵。注意:是赋值后的
*Interpolation是内插方式,默认为'constant'
*AdaptImageSize是bool变量,判断输出图像的大小是否发生变化
()affine_trans_image(Image : ImageAffinTrans : HomMat2D, Interpolation, AdaptImageSize : )

但是,在使用过程中,遇到一个问题。在图片进行旋转之后,图片的四个角都不能很好的保留。我想做的是将图片旋转后,将图片不会缺损,也不会缩小,也就是说原图片旋转后将扩大。然后,我找到一种折中的办法,但是速度很慢,也许达不到要求。还是分享记录一下吧。

optimize_aop ('rotate_image', 'byte', 'no_file', ['file_mode','model','parameters'], ['nil','threshold','false'])
set_system ('parallelize_operators', 'true')//只需开一次
get_image_size(image_ori, Width, Height)
gen_rectangle1(Rectangle,,,Height-,Width-)
get_region_points(Rectangle, Rows, Columns)
***************单通道图像的旋转****************
if(c=)
get_grayval(image_ori,Rows,Columns,Grayval)
HeightL:=
WidthL:=
gen_image_const(Image1, 'byte', WidthL, HeightL)
Rows:=Rows+(HeightL/-Height/)
Columns:=Columns+(WidthL/-Width/)
set_grayval(Image1,Rows,Columns,Grayval)
Phi1:=rad(angle)
vector_angle_to_rigid(HeightL/, WidthL/, , HeightL/, WidthL/, -Phi1, HomMat2D1)
affine_trans_image(Image1, image_dst, HomMat2D1, 'constant', 'false')
**************3通道彩色图像的旋转****************
elseif(c=)
decompose3(image_ori, ImageR, ImageG, ImageB)
get_grayval(ImageR,Rows,Columns,GrayvalR)
get_grayval(ImageG,Rows,Columns,GrayvalG)
get_grayval(ImageB,Rows,Columns,GrayvalB)
HeightL:=
WidthL:=
gen_image_const(Image1, 'byte', WidthL, HeightL)
gen_image_const(Image2, 'byte', WidthL, HeightL)
gen_image_const(Image3, 'byte', WidthL, HeightL)
Rows:=Rows+(HeightL/-Height/)
Columns:=Columns+(WidthL/-Width/)
set_grayval(Image1,Rows,Columns,GrayvalR)
set_grayval(Image2,Rows,Columns,GrayvalG)
set_grayval(Image3,Rows,Columns,GrayvalB)
compose3(Image1, Image2, Image3, MultiChannelImage)
Phi1:=rad(-)
vector_angle_to_rigid(HeightL/, WidthL/, , HeightL/, WidthL/, -Phi1, HomMat2D1)
affine_trans_image(MultiChannelImage, image_dst, HomMat2D1, 'constant', 'false') endif

Halcon旋转图片的研究的更多相关文章

  1. ios新手开发——toast提示和旋转图片加载框

    不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经 ...

  2. Camera图片特效处理综述(Bitmap的Pixels处理、Canvas/paint的drawBitmap处理、旋转图片、裁截图片、播放幻灯片浏览图片<线程固定时间显示一张>)

    一种是直接对Bitmap的像素进行操作,如:叠加.边框.怀旧.(高斯)模糊.锐化(拉普拉斯变换). Bitmap.getPixels(srcPixels, 0, width, 0, 0, width, ...

  3. exif.js 旋转图片

    还是那个问题:网上的大胸弟们BB一大堆,没几个给的代码能用的,话不多说,直接上demo: 链接:https://pan.baidu.com/s/1jJ6vnt8 密码:swwm 不要忽视demo中的s ...

  4. vue 添加旋转图片 修改css transform 值

    //点击放大图片并旋转图片 conponents组建 <template>    <!-- 过渡动画 -->    <transition name="fade ...

  5. JQ 实现轮播图(3D旋转图片轮播效果)

    轮播图效果如下: 代码: <!DOCTYPE html> <html xmlns="/www.w3.org/1999/xhtml"> <head> ...

  6. java旋转图片

    /** * 旋转角度 * @param src 源图片 * @param angel 角度 * @return 目标图片 */ public static BufferedImage rotate(I ...

  7. 【Thumbnailator】java 使用Thumbnailator实现等比例缩放图片,旋转图片等【转载】

    Thumbnailator概述:     Thumbnailator是与Java界面流畅的缩略图生成库.它简化了通过提供一个API允许精细的缩略图生成调整生产从现有的图像文件的缩略图和图像对象的过程, ...

  8. C#图片处理之:旋转图片90度的整数倍

    原文:C#图片处理之:旋转图片90度的整数倍 旋转图片90的整数倍那真是太简单了.         public static Bitmap KiRotate90(Bitmap img)        ...

  9. canvas旋转图片

    canvas旋转图片 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

随机推荐

  1. HTTP,RFC自学心得

    HTTP协议描述的是:发送方与接收方的通信协议,通过两方的自觉遵守而存在,当然有不少的浏览器并没有百分百遵守这份协议. HTTP是运行于应用层的协议,基于TCP协议而运作.基本上是客户/服务器对答模式 ...

  2. JAVA学习笔记系列2-Java程序的运行机制

    计算机高级语言的类型主要有编译型和解释型两种,而java语言是两种类型的结合. java首先利用文本编辑器编写java源程序,源文件后缀名为.java,再利用编译器(javac)将源程序编译成字节码文 ...

  3. 2017年4月7日16:18:17 java8 常用记录

    List<String> customerUids = customerTagModel.stream().map(CustomerTagModel::getCustomerUid)   ...

  4. 直接借鉴的 ids拼接

    function _getIds(selectedIds, targetType){ var ids = ""; var $box = targetType == "di ...

  5. 【数据库(一)】SQL语言-表定义、查询

    基本模式定义+ SQL支持许多不同的完整性约束. not null, 在该属性上不允许空值 primary key 是否是是主码,主码必须非空且唯一 foreign key check(P),P是谓词 ...

  6. N阶乘尾部的0个数

    N阶乘尾部的0个数 描述 设计一个算法,计算出n阶乘中尾部零的个数 思路: 1.1 * 2 * 3 * ... * n --> 1 * 2 * 3 * (2 * 2) * 5 * (2 * 3) ...

  7. centOS连接没问题,使用SecureCRT就不能连接

    原因: 将NAT模式改为自定义的模式即可:

  8. python------面向对象进阶 Socket网络编程

    一.Socket网络编程 1.七层模型,亦称OSI(Open System Interconnection)参考模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系 ...

  9. Django项目在linux系统中虚拟环境部署

    1.在linux系统下,安装virtualenv 命令:pip install virtualenv 2.项目部署前的准备 1. Django web project deployment 1.1.  ...

  10. ssh登录原理及免密登录方法

    免密登录设置 1.进入到我的home目录  cd ~/.ssh 2.生成ssh免登陆秘钥ssh-keygen -t rsa (四个回车)      执行完这个命令后,会生成两个文件id_rsa(私钥) ...