Halcon旋转图片的研究
在Halcon中有两个用于图像旋转的函数:
1,rotate_image
*Image和ImageRotate分别是输入和输出图像
*Phi是输入的旋转度数
*interpolation是内插方式,默认为’constant’
rotate_image(Image : ImageRotate : Phi, Interpolation : )
2,affine_trans_image
*开辟一个旋转矩阵
(1)hom_mat2d_identity (HomMat2D)
*为旋转矩阵赋值
*HomMat2D是输入的旋转矩阵
*Phi是输入的旋转角度
*Px和Py分别是输入的旋转中心x坐标值和y坐标值
*HomMat2DRotate是输出的旋转矩阵
(2)hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)
*实施旋转
*Image : ImageAffinTrans分别为输入输出图像
*HomMat2D是赋值后的旋转矩阵。注意:是赋值后的
*Interpolation是内插方式,默认为’constant’
*AdaptImageSize是bool变量,判断输出图像的大小是否发生变化
(3)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,0,0,Height-1,Width-1)
get_region_points(Rectangle, Rows, Columns)
单通道图像的旋转*
if(c=1)
get_grayval(image_ori,Rows,Columns,Grayval)
HeightL:=3084
WidthL:=3184
gen_image_const(Image1, ‘byte’, WidthL, HeightL)
Rows:=Rows+(HeightL/2-Height/2)
Columns:=Columns+(WidthL/2-Width/2)
set_grayval(Image1,Rows,Columns,Grayval)
Phi1:=rad(angle)
vector_angle_to_rigid(HeightL/2, WidthL/2, 0, HeightL/2, WidthL/2, -Phi1, HomMat2D1)
affine_trans_image(Image1, image_dst, HomMat2D1, ‘constant’, ‘false’)3通道彩色图像的旋转**
elseif(c=3)
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:=3084
WidthL:=3184
gen_image_const(Image1, ‘byte’, WidthL, HeightL)
gen_image_const(Image2, ‘byte’, WidthL, HeightL)
gen_image_const(Image3, ‘byte’, WidthL, HeightL)
Rows:=Rows+(HeightL/2-Height/2)
Columns:=Columns+(WidthL/2-Width/2)
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(-35)
vector_angle_to_rigid(HeightL/2, WidthL/2, 0, HeightL/2, WidthL/2, -Phi1, HomMat2D1)
affine_trans_image(MultiChannelImage, image_dst, HomMat2D1, ‘constant’, ‘false’)
endif
Halcon旋转图片的研究相关推荐
- ios新手开发——toast提示和旋转图片加载框
不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经 ...
- java 旋转图片_Java实现图片翻转以及任意角度旋转
最近几天在做一个项目,因为涉及到了图片(绝大部分都不是整图,是把一张张的大图切成小图,也就是Title)的翻转以及90°旋转,弄得焦头烂额.在网上搜索好几天,发现用到的方法都是比较公式化的,对于只是在 ...
- 如何批量旋转图片方向,包教会方法分享
如何批量旋转图片方向,这个怎么搞呢?小编曾经遇到一个问题,就是我将手机上的照片上传到电脑后发现所有的图片都是倒立的,这让查看变得非常不方便.尽管小编已经尝试过打开每张图片并逐个旋转后再另存为,但这种方 ...
- java如何利用rotate旋转图片_Java实现图片翻转以及任意角度旋转
最近几天在做一个项目,因为涉及到了图片(绝大部分都不是整图,是把一张张的大图切成小图,也就是Title)的翻转以及90°旋转,弄得焦头烂额.在网上搜索好几天,发现用到的方法都是比较公式化的,对于只是在 ...
- HTML5 3D旋转图片相册
H5旋转3D相册,鼠标放置暂停,图片灰度级为0,有放大效果. 该实例运用H5和CSS3动画效果,未用javascript.提高了本人对CSS3 新属性的了解及掌握. 完整代码如下: <!DOCT ...
- 小猿圈web前端之移动端Vue+Vant实现上传压缩旋转图片功能
小猿圈web前端讲师为了大家更好的学习前端知识决定每天分享一个web前端案例,希望对你与学习前端的你有所帮助,今天分享的是移动端Vue+Vant的Uploader实现上传.压缩.旋转图片等功能的详细介 ...
- css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...
纯JS实现旋转图片3D展示效果 CSS: #show{position:relative;margin:20px auto;width:800px;} .item{position:absolute; ...
- 360度旋转图片小特效
现在,在这个网络发达的时代,一些电子商务公司,需要将自己线上的产品给买家或用户看,为了能让用户了解的更全面,那么把一个物件的产品要展示到方方面面,就要运用到360度旋转图片特效,因为上次有朋友叫我帮她 ...
- php 图片 3d旋转图片,html5实现图片的3D旋转效果
我们先来看一下实现效果: (学习视频分享:html视频教程) H5旋转3D相册,鼠标放置暂停,图片灰度级为0,有放大效果. 该实例运用H5和CSS3动画效果,未用javascript.提高了本人对CS ...
最新文章
- Win10 + Opencv2.4.9
- 说给做管理软件的同行:你们得学会职业规划
- sqlserver 多表更新
- Spring Data JPA 从入门到精通~查询结果的处理
- linux下安装Python3.6.1
- 蓝桥杯 ADV-210 算法提高 2-1屏幕打印
- dozer无法映射java8中的LocalDateTime类型的解决方案
- Swift3 获取系统音量和监听系统音量
- 海康威视监控工具-IVMS-4200不同系统兼容性问题汇总
- 【阿朱一帖看尽】2014年BAT到底干了些什么
- 工程施工工地进度监控带天气经纬度相机(监理日志不再难写)
- 什么是java全栈工程师
- 每日算法刷题Day3-起始时间转换、二次方根、while连续输入、斐波那契思路
- 25岁女生,转行学前端合适吗?
- 傅佩荣谈道家逍遥自在的人生
- python typeerror总结_python异常总结解析
- Teardrop代码编程
- shell脚本小游戏
- windows系统nginx重启发生异常
- python3根据excel表数据自动生成word格式数据报告
热门文章
- Zookeeper之Linux分布式集群搭建及客户端shell命令操作
- gRPC 入门使用教程
- 【FPGA】变量位宽问题
- android打卡源代码,Android应用源码大学生考勤项目源码
- 基于dynamic-datasource多数据源自由切换--多租户
- 关于Spring的69个面试问答和Top25个问答--终极列表,以及Spring相关知识
- 我这10来年(Tinyfool的程序人生)[转]
- 硬盘分区、格式化及文件系统的管理
- oracle替换mysql_老师,您好 oracle sql 语句 替换mysql 语句
- 银行ATM机工作流程