我的 opencv 中有很多行,我想旋轉它們,但 Opencv 沒有形狀旋轉功能。它具有影像旋轉功能。
我做了一個矩形并在上面畫線。然后我用 cv2.getRotationMatrix2D 旋轉它。我嘗試使用 cv2.addWeighted 創建蒙版并在影像上添加線條,但它無法正常作業。
我用Canva畫了一些例子:



這是我用來畫線的代碼:
def draw_lines(img, color, cx, cy, deg):
deg = int(deg)
for a in range(720, -720, -30):
img = cv2.line(img, (cx-165, cy a), (cx 165, cy a), color, 1,cv2.LINE_AA)
return img
如何僅使用數學來旋轉這些線?
*info:彎曲線示例(不旋轉):我想旋轉它們。

uj5u.com熱心網友回復:
旋轉矩陣圍繞原點旋轉向量(0, 0)。您始終必須考慮要在哪個坐標系中旋轉矢量。
將您的代碼和示例放在一起:
import numpy as np
import cv2
from math import cos, sin
def draw_lines(img, color, cx, cy, deg):
theta = np.deg2rad(deg)
rot = np.array([[cos(theta), -sin(theta)], [sin(theta), cos(theta)]])
c = np.array([cx, cy])
for a in range(720, -720, -30):
v1 = np.dot(rot, np.array([-165, a])).astype(int)
v2 = np.dot(rot, np.array([165, a])).astype(int)
img = cv2.line(img, c v1, c v2, color, 1, cv2.LINE_AA)
return img
def main():
img = np.zeros((2000, 2000, 3), np.uint8) # create empty black image
draw_lines(img, [255, 255, 255], 1000, 1000, 30)
cv2.imwrite("out.png", img)
main()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474834.html
上一篇:比O(n)更快地找到階乘n模m
下一篇:查找遞增序列的第n個字符
