python四边形转矩形_如何用PIL将矩形图像映射成四边形?
所以我用一个简单的正向映射来解决这个问题,而不是逆映射,这通常更好,但是在我的应用程序中,我只将矩形映射到比矩形小的四边形,因此通常在变换后的图像中没有孔。代码如下:def reverse_quad_transform(image, quad_to_map_to, alpha):
# forward mapping, for simplicity
result = Image.new("RGBA",image.size)
result_pixels = result.load()
width, height = result.size
for y in range(height):
for x in range(width):
result_pixels[x,y] = (0,0,0,0)
p1 = (quad_to_map_to[0],quad_to_map_to[1])
p2 = (quad_to_map_to[2],quad_to_map_to[3])
p3 = (quad_to_map_to[4],quad_to_map_to[5])
p4 = (quad_to_map_to[6],quad_to_map_to[7])
p1_p2_vec = (p2[0] - p1[0],p2[1] - p1[1])
p4_p3_vec = (p3[0] - p4[0],p3[1] - p4[1])
for y in range(height):
for x in range(width):
pixel = image.getpixel((x,y))
y_percentage = y / float(height)
x_percentage = x / float(width)
# interpolate vertically
pa = (p1[0] + p1_p2_vec[0] * y_percentage, p1[1] + p1_p2_vec[1] * y_percentage)
pb = (p4[0] + p4_p3_vec[0] * y_percentage, p4[1] + p4_p3_vec[1] * y_percentage)
pa_to_pb_vec = (pb[0] - pa[0],pb[1] - pa[1])
# interpolate horizontally
p = (pa[0] + pa_to_pb_vec[0] * x_percentage, pa[1] + pa_to_pb_vec[1] * x_percentage)
try:
result_pixels[p[0],p[1]] = (pixel[0],pixel[1],pixel[2],min(int(alpha * 255),pixel[3]))
except Exception:
pass
return result
python四边形转矩形_如何用PIL将矩形图像映射成四边形?相关推荐
- python神经网络构建图_如何用卷积神经网络构建图像?
原标题:如何用卷积神经网络构建图像? 原标题 |Everything you need to know to master Convolutional Neural Networks 作者 | Tir ...
- python人脸检测代码_如何用不到25行Python代码实现人脸检测
本文我们会讲讲怎样利用不到 25 行 Python 代码和开源库 OpenCV,以很简单的方式实现人脸识别. 在正式开始前,先提以下两点小小的建议:先别急着跳到代码部分,最好在前文理解一下代码是干什么 ...
- 用python画机器猫代码_如何用Python画一只机器猫?| 原力计划
原标题:如何用Python画一只机器猫?| 原力计划 作者 | 人邮异步社区 责编 | 胡巍巍 出品 | CSDN博客 自信心是成功的源泉,对刚入门编程行业的初级程序员来说,多敲代码多做项目就是构建自 ...
- python贪吃蛇控制台_如何用Python写一个贪吃蛇AI
前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...
- python 读取excel图片_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python默认字体大小_如何设置PIL加载的默认字体的大小,使其适合我的8x8矩阵?...
我正在8x8矩阵显示器上显示文本,并且我没有一个方便使用我的BeagleBone的.ttf文件.如何设置PIL加载的默认字体的大小,使其适合我的8x8矩阵? 根据示例here,我应该能够说font = ...
- 怎么用python读取excel图_如何用Python读取Excel中图片?
公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...
- python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...
- python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...
python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...
最新文章
- memcached基本操作和语法
- 闪回的用途与实战(闪回表,闪回删除,闪回重名删除,闪回版本查询)
- 2 android学习资料
- Python面试题大全(二):python高级语法
- mysql 复制方式_MySQL复制方法
- Linux服务器---xopps
- oracle ctl 递增,增加oracle的控制文件
- 一直都说字节跳动有点难,这次体会了,而且被怼了~
- PowerDesigner执行sql脚本方式建立数据模型
- Drool实战系列(二)之eclipse安装drools插件
- matter协议的关键特性
- Linux文件莫名被删除,【Linux】Linux文件被删除后的恢复方法
- QT入门学习(一):什么是QT
- 如何停止keepalived_systemctl无法停掉keepalived
- 畅游高管曝出“k事件” 搜狐的老本往后怎么“吃”?
- Chapter3-线性模型线性模型
- docker教程(简介)
- caret包处理流程
- python求两个数的最大公约数穷举法_求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法...
- 提前还贷 别忘退税退保
热门文章
- ONEDNS配置1:centos7DNS服务器forwarder配置
- 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...
- C# 常用命名空间说明
- 计算机显示器是指什么,电脑的显示器是什么 选购显示器的小技巧
- 小锤子要出来?老罗傲娇属性不再
- Si24R2F+2.4GHz ISM 频段低功耗无线集成嵌入式发射基带无线发射芯片
- 云原生数据湖以存储、计算、数据管理等能力通过信通院评测认证
- ReactOS:基于Windows的开源操作系统
- Line Phone概念手机的设计感悟
- CTA 认证android平台 彩信/ MMS 受控原理