python 点的投影变换
【摘要】 单通道就可以了:
# -*- coding: utf-8 -*-import osimport numpy as npimport cv2 # -*- coding:utf-8 -*-import cv2import numpy as np def rad(x): return x * np.pi / 180 img = np.zeros((400,400),dtype...
单通道就可以了:
-
# -*- coding: utf-8 -*-
-
import os
-
import numpy as np
-
import cv2
-
-
# -*- coding:utf-8 -*-
-
import cv2
-
import numpy as np
-
-
-
def rad(x):
-
return x * np.pi / 180
-
-
-
img = np.zeros((400,400),dtype=np.uint8)
-
# cv2.imshow("original", img)
-
-
-
img[100,10]=(255)
-
img[100,11]=(255)
-
-
img[30,30]=(255)
-
img[30,31]=(255)
-
img[70,70]=(255)
-
img[70,71]=(255)
-
img[20,100]=(255)
-
img[20,101]=(255)
-
-
-
w, h = img.shape[0:2]
-
-
anglex = 0
-
angley = 30
-
anglez = 0 # 是旋转
-
fov = 42
-
while 1:
-
# 镜头与图像间的距离,21为半可视角,算z的距离是为了保证在此可视角度下恰好显示整幅图像
-
z = np.sqrt(w ** 2 + h ** 2) / 2 / np.tan(rad(fov / 2))
-
# 齐次变换矩阵
-
rx = np.array([[1, 0, 0, 0],
-
[0, np.cos(rad(anglex)), -np.sin(rad(anglex)), 0],
-
[0, -np.sin(rad(anglex)), np.cos(rad(anglex)), 0, ],
-
[0, 0, 0, 1]], np.float32)
-
-
ry = np.array([[np.cos(rad(angley))
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/112385905
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)