Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

【图像处理】透视变换 Perspective Transformation

【图像处理】透视变换 Perspective Transformation

透视变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。通用的变换公式为:u,v是原始图片左边,对应得到变换后的图片坐标x,y,其中。变换矩阵可以拆成4部分,表示线性变换,比如scaling,shearing和ratotion。用于平移,产生透视变换。所以可以理解成仿射等是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四边形(...
【OpenCV】透视变换 Perspective Transformation(续)

【OpenCV】透视变换 Perspective Transformation(续)

透视变换的原理和矩阵求解请参见前一篇《透视变换 Perspective Transformation》。在OpenCV中也实现了透视变换的公式求解和变换函数。求解变换公式的函数:Mat getPerspectiveTransform(const Point2f src[], const Point2f dst[])输入原始图像和变换之后的图像的对应4个点,便可以得到变换矩阵。之后用求解得到的矩阵输入perspectiveTransform便可以对一组点进行...
将Eclipse中的Java项目转移到Linux下运行

将Eclipse中的Java项目转移到Linux下运行

有些Java项目考虑到性能的需求或者需要调用shell脚本等,需要在Linux系统下运行。完成Eclipse中的Java项目到Linux系统下迁移需要一些操作:1、将Eclipse下的java项目源码打包成jar,可以有两种方式,但是建议第一种有利于管理关联的jar包。方法1:使用maven1)保证该java项目是一个maven项目,关联的jar包都位于lib下并已引入到.classpath和pom.xml中。2)右键项目—>Debug&...
Android 动画之属性动画

Android 动画之属性动画

属性动画属性动画在指定时长内改变一个属性的值 (属性指一个对象的一个变量) 可以定义一个属性动画随着时间变化改变一个对象的属性, 不管这个对象是否画到屏幕上。可以为属性动画设定如下属性: 1. Duration: 动画的时间, 默认为300ms. 2. Time interpolation:时间插值函数. (指定属性值变化的快慢) 3. Repeat count and behavior:重复次数与行为, 可以指定在动画结束时是否要重复执行动画...
Linux 下C++线程池的简单实现

Linux 下C++线程池的简单实现

Linux 下C++线程池的简单实现(在老外代码上添加注释)。作为一个C++菜鸟,研究半天这个代码的实现原理,发现好多语法不太熟悉,因此加了一大堆注释,仅供参考。该段代码主要通过继承workthread类来实现自己的线程代码,通过thread_pool类来管理线程池,线程池不能够实现动态改变线程数目,存在一定局限性。目前可能还有缺陷,毕竟C++来封装这个东西,资源释放什么的必须想清楚,比如vector存储了基类指针实现多态,那么如何释放对象仍需要考虑,后续...
使用 C++11 编写 Linux 多线程程序

使用 C++11 编写 Linux 多线程程序

如何使用 C++11 编写 Linux 多线程程序本文讲述了如何使用 C++11 编写 Linux 下的多线程程序,如何使用锁,以及相关的注意事项,还简述了 C++11 引入的一些高级概念如 promise/future 等。前言在这个多核时代,如何充分利用每个 CPU 内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的 web 浏览器应用程序,从保持着几 t 甚或几 p 的数...
Ubuntu修复了14.04 LTS 上锁屏的安全漏洞

Ubuntu修复了14.04 LTS 上锁屏的安全漏洞

Canonical公司已经修补了Ubuntu 14.04 LTS上一个重大的安全漏洞 — 这个漏洞可能让攻击者不需要输入密码而获取一个用户账户。“锁屏绕开”问题在本周早些时候已经发表在了Launchpad上,漏洞修复现在已经发布。它描述了一种方法,通过这个方法可以在没有授权的情况下访问那些使用新的Unity锁屏并处于锁屏状态的用户账户。如何做呢?右键点击指示器程序直到Alt+F2快捷键能奏效。这时,你就可以发出命令,打开...
为什么Go语言不是想象中的那么好

为什么Go语言不是想象中的那么好

我喜欢 Go. 常用它实现各种功能(包括在写本文时的这个博客). Go 很实用,但不够好。 不是说它有多差, 只是没那么好而已。一门编程语言, 也许会用上一辈子, 所以选择的时候要注意。本文专注于 Go 的各种吐槽。 老生常谈的有之,鲜为人知的也有。我用 Rust 和Haskell 作为参照 (至少, 我以为, 这俩都很不错)。 本文列出的所有问题, 都有解决方案。常规编程那么问题来了我们写代码可以用于许多不同的事情。假如我写了一个函数用来对一列数字求和,...
如何利用心血漏洞来获取网站的私有 crypto 密钥

如何利用心血漏洞来获取网站的私有 crypto 密钥

现在OpenSSL的心血(Heartbleed)漏洞已经是人尽皆知了: 在最流行的TLS实现之一的OpenSSL中由于缺少的一个边界检查导致了数以百万计(或更多)的Web服务器泄露了内存中的各种敏感信息.这会将登录证书, 认证cookie和网站流量泄露给攻击者. 但它能否用于获取站点的私钥? 取得站点的私钥就可以破解以前记录的没有达成完美的向前保密性的流量, 然后就可以在以后的TLS会话中实施中间人攻击.因为这是心血漏洞的更为严重的后果, 我决定尝试下. ...
经典(Java版)排序算法的分析及实现之二希尔排序

经典(Java版)排序算法的分析及实现之二希尔排序

插入排序—希尔排序希尔排序是1959 年由D.L.Shell 提出来的,相对直接插入排序有较大的改进。希尔排序的实质就是分组插入排序,该方法又称缩小增量排序。基本算法:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),...
<< 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 >>