bLT_utils.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:bLandscapeTools 作者: paxetgloria 项目源码 文件源码
def checkSurfaceMask(context,cellSize,gridResolution,tileSize,maskResolution):
    def calculateOverlap(cellSize,gridResolution,tileSize,maskResolution):
        def roundToInt( x ):
            return floor(x + 0.5)

        def nearlyInt( x, i ):
            return (abs( x - i ) < 0.000001)

        def check( x ):
            return nearlyInt(x, roundToInt( x ))

        terrainSize = cellSize * gridResolution  
        multiplier = 1
        bestDist = 1000000
        bestMult = -1
        for i in range(0,8):
            landGrid = multiplier * cellSize
            dist = abs(40.0 - landGrid)
            if dist < bestDist:
                bestDist = dist
                bestMult = multiplier
            multiplier *= 2

        subDiv = bestMult
        m_landGrid = subDiv * cellSize #land grid cell size or _landGrid
        totalLandGrids = floor( terrainSize / m_landGrid ) #land grid size or _landRange
        m_gridSize = subDiv * totalLandGrids #terrain grid size or _terrainRange
        m_width = m_height = m_gridSize * cellSize #final terrain size
        defaultOverlap = 16 # minimum overlap
        tileUsable = int(tileSize) - defaultOverlap
        tileUsableMeters = maskResolution * tileUsable
        segmentLGCs = floor( tileUsableMeters / m_landGrid )
        segmentLGCs -= segmentLGCs % 4
        segmentMeters = segmentLGCs * m_landGrid
        segmentPixels = segmentMeters / maskResolution
        actualOverlap = int(tileSize) - segmentPixels
        tilesInRow = ceil( m_width / segmentMeters )
        return actualOverlap, tilesInRow

    from cv2 import imread as cv2imread, imwrite as cv2imwrite

    surfaceMask = cv2imread(context.scene.checkSurfaceMaskPath,1)


    maskWidth = maskHeight = int((cellSize * gridResolution) / maskResolution)
    rgb = zeros((maskWidth,maskHeight,3), uint8)
    alpha = zeros((maskWidth,maskHeight,1), uint8)

    actualOverlap, tilesInRow = calculateOverlap(cellSize,gridResolution,tileSize,maskResolution)

    font = cv2.FONT_HERSHEY_DUPLEX

    print(actualOverlap, tilesInRow)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号