首页 > 编程语言 > 详细

python在图像上画线

时间:2021-09-13 11:13:12      阅读:30      评论:0      收藏:0      [点我收藏+]

python代码

import math
import os
import sympy as sy
import numpy as np
import cv2
from osgeo import gdal

def Polar2Cartesian(theata):
    """
    极坐标转直角坐标系
    :return: 斜率
    """
    pi = 3.14
    radian = pi * theata / 180
    return math.tan(radian)
def Painter(ori,theta):
    """
    painter a picture
    :param ori: origin image
    :param theta: θ
    :return: img
    """
    width, height = ori.shape[0], ori.shape[1]
    img = np.zeros((height,width))
    slope = Polar2Cartesian(theta)
    if theta < 90:
        min_offset = int(0 - slope * width)
        max_offset = height - 1
    else:
        min_offset = 1
        max_offset = 2 * height - int(slope * width)
    for offset in range(min_offset, max_offset, 30):
        if theta < 45:
            for i in range(0, width):
                y = int(slope * i) + offset
                if y >= height:
                    break
                # idx += 1
                img[y, i] = 255
        elif theta <= 90:
            """
            x = 1/slop
            """
            for i in range(0, height):
                x = int((i - offset) / slope)
                if x >= width or x < 0:
                    continue
                # idx += 1
                img[i, x] = 255
        elif theta <= 135:
            for i in range(0, height):
                x = int((i - offset) / slope)
                if x >= width or x < 0:
                    continue
                # idx += 1
                img[i, x] = 255
        else:
            for i in range(0, width):
                y = int(slope * i) + offset
                if (y >= height or y < 0) and offset < height:
                    break
                if (y >= height or y < 0) and offset >= height:
                    continue
                # idx += 1
                img[y, i] = 255
    return img

 

python在图像上画线

原文:https://www.cnblogs.com/suoyike1001/p/15260305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!