tf.contrib.image.transform与opencv中PerspectiveTransform

2023-05-16

tensorflow中tf.contrib.image.transform函数可对图像做透视变换,用法如下

#读取图像
img=cv2.imread('/home/xp1/Pictures/004545.jpg')

input=tf.placeholder(dtype=np.uint8,shape=[375,500,3]) #高,宽,通道

src_points = np.array([[165., 270.], [400., 270.], [360., 125.], [400., 125.]], dtype="float32")
dst_points = np.array([[165., 270.], [400., 270.], [165., 30.], [400., 30.]], dtype="float32")

M = cv2.getPerspectiveTransform(src_points, dst_points)
T = M.reshape(1,-1).squeeze().tolist()
T = T[:-1]
#创建操作
trans_op=tf.contrib.image.transform(input, T)


#执行操作
with tf.Session() as sess:
    trans_img=sess.run(trans_op,feed_dict={input:img})
    cv2.imshow('img',trans_img)
cv2.waitKey()
cv2.destroyAllWindows()

opencv中等价的代码为

w,h,_ = img.shape

src_points = np.array([[165., 270.], [400., 270.], [360., 125.], [400., 125.]], dtype="float32")
dst_points = np.array([[165., 270.], [400., 270.], [165., 30.], [400., 30.]], dtype="float32")

M = cv2.getPerspectiveTransform(src_points, dst_points)

M = np.linalg.inv(M)

print(M)
out_img = cv2.warpPerspective(img,M,(h,w))
cv2.imshow("img",out_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

注意,在opencv中,需要对变换矩阵进行取逆操作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tf.contrib.image.transform与opencv中PerspectiveTransform 的相关文章

随机推荐

  • 记录一次wordpress站点迁移过程

    迁移和备份还原的区别是针对不同的install而言的 xff0c 使用上的区别可能是访问的IP会变 几乎所有系统的备份还原都主要涉及下面两个方面 xff0c wordpress也不例外 xff1a 数据库 xff1a mysqldump x
  • ubuntu16.04桌面美化

    先晒一张桌面图 xff1a 电脑是笔记本 xff0c 尺寸13 3 1080P 主要修改如下 xff1a 桌面壁纸 主题 缩放Unity面板左上角 34 Ubuntu Desktop 34 下部类似MacOS中的启动栏 桌面壁纸 主题 缩放
  • Java Math类的函数计算方法汇总

    java lang Math类中包含基本的数字操作 xff0c 如指数 对数 平方根和三角函数 java math是一个包 xff0c 提供用于执行任意精度整数 BigInteger 算法和任意精度小数 BigDecimal 算法的类 ja
  • Ubuntu截图快捷键

    系统设置 键盘 截图查看截图键的设置 xff1a 总结下 xff1a 对整个屏幕截图 xff1a Prt Sc xff08 PrintScreen xff0c 打印按钮 xff09 当前当前窗口截图 xff1a Alt 43 Prt Sc自
  • Ubuntu翻译任何选中的文字

    1 问题 Google Chrome浏览器可以集成Google Translator插件 xff0c 实现浏览器页面文字的翻译 xff0c 但是除了浏览器 xff0c PDF LibreOffice等软件上面的文字也经常需要翻译 Ubunt
  • 关于字符集和编码你应该知道的

    1 Introduction 大部分程序员都会认为 xff1a plain text 61 ascii 61 character xff0c 如我们使用的A字符 xff0c 就是一个字节 8bits Unicode字符集占用2个字节 xff
  • 2019 年 吉林大学 软件学硕967 回忆题

    2019年吉林大学软件工程专业硕士967回忆 一简单题 1给了一个中缀表达式转化为后缀表达式 2给了一组数字 xff0c 用快速排序进行排序 xff0c 写出每一趟的过程 3给了一组11个元素的有序表 xff0c 进行二分查找33 xff0
  • 南京工业大学校园网(智慧南工)自动登录

    前言 南京工业大学校园网 智慧南工 Njtech Home宿舍网自动登录 多平台可用 目前实现windows xff0c macos xff0c openwrt xff0c ios平台自动登录 由于gitee所有项目私有 xff0c 公开需
  • js前端实现语言识别(asr)与录音

    js前端实现语言识别与录音 前言 实习的时候 xff0c 领导要求验证一下在web前端实现录音和语音识别 xff0c 查了一下发现网上有关语音识别也就是语音转文字几乎没有任何教程 其实有一种方案 xff0c 前端先录音然后把录音传到后端 x
  • [Nice_try]python基础学习笔记(六)

    六 函数 局部变量 全局变量 6 1 1函数的概念 将特定功能的代码集成到一个模块中 xff0c 在需要调用的时候进行调用 可以防止内容的重复编写 6 1 2函数的定义 span class token keyword def span 函
  • 论文写作感悟

    以下是学习论文写作课程之后的一些感悟以及收获 xff0c 总结如下 xff1a 关于格式 xff1a 1 在写论文的过程中 xff0c 使用LaTeX排版系统能够让论文显得更加专业 xff0c 而且对公式 排版的处理会更加美观 2 在论文中
  • 软件工程概论第一次作业

    习题 一 单项选择 1 软件是计算机系统中与硬件相互依存的另一部分 xff0c 它是包括 1 B 2 A 及 3 D 的完整集合 其中 xff0c 1 B 是按事先设计的功能和性能要求执行的指令序列 2 A 是使程序能够正确操纵信息的数据结
  • Java递归发实现Fibonacci数列,尾递归实现Fibonacci数列,并获取计算所需时间

    递归法计算Fibonacci数列 xff1a 它可以递归地定义为 xff1a 第n个Fibonacci数列可递归地计算如下 xff1a int fibonacci int n if n lt 61 1 return 1 return fib
  • apache-options配置之Indexes

    配置 Options Indexes FollowSymLinks Indexs的配置的作用是如果不存在Index html文件的时候 xff0c 将该目录下的文件树列出来 一般在线上使用
  • gcr.io和quay.io拉取镜像失败

    k8s在使用编排 xff08 manifest xff09 工具进行yaml文件启动pod时 xff0c 会遇到官方所给例子中spec containers image包含 xff1a quay io coreos example gcr
  • yacs直接读取yaml文档(python)

    yacs在我理解是一种读写配置文件的python包 在机器学习领域 xff0c 很多模型需要设置超参数 xff0c 当超参数过多时 xff0c 不方便管理 xff0c 于是出现了很多类似yaml xff0c yacs的包 关于yacs的使用
  • 基于Gensim的Word2Vec增量式训练方法

    Word2Vec训练好以后 xff0c 随着时间的积累 xff0c 出现一些新词 xff0c 此时可能需要在已有的模型基础上重新训练 xff0c 以补充这些新词汇 xff0c 亦即增量式训练 本文分析了基于Gensim的Word2Vec的增
  • Numpy/Pytorch中函数参数dim/axis到底怎么用?

    numpy或pytorch中很多函数可指定参数dim或axis 例如sum函数 xff0c dim 61 0或dim 61 1是对矩阵列 行进行求和 xff0c 时间久了 xff0c 就搞混了 xff0c 如果是高维array tensor
  • Tensorflow中截断高斯分布(truncated norm)采样的python实现

    Tensorflow中可调用函数tf truncated normal来进行截断高斯分布的采样 什么是截断高斯分布 xff0c 看下图 xff0c 分布在 0 1和0 1处被截断了 xff0c 具体如下 import tensorflow
  • tf.contrib.image.transform与opencv中PerspectiveTransform

    tensorflow中tf contrib image transform函数可对图像做透视变换 xff0c 用法如下 读取图像 img 61 cv2 imread 39 home xp1 Pictures 004545 jpg 39 in