相关疑难解决方法(0)

numpy uint8像素包装解决方案

对于图像处理类,我在单色图像上进行点操作.像素是uint8 [0,255].

numpy uint8将换行.例如,235 + 30 = 9.我需要像素饱和(max = 255)或截断(min = 0)而不是包裹.

我的解决方案使用int32像素作为点数学,然后转换为uint8以保存图像.

这是最好的方法吗?或者有更快的方法吗?

#!/usr/bin/python

import sys
import numpy as np
import Image

def to_uint8( data ) :
    # maximum pixel
    latch = np.zeros_like( data )
    latch[:] = 255
    # minimum pixel
    zeros = np.zeros_like( data )

    # unrolled to illustrate steps
    d = np.maximum( zeros, data )
    d = np.minimum( latch, d )

    # cast to uint8
    return np.asarray( d, dtype="uint8" )

infilename=sys.argv[1]
img = Image.open(infilename)
data32 = np.asarray( …
Run Code Online (Sandbox Code Playgroud)

python numpy

26
推荐指数
2
解决办法
3万
查看次数

标签 统计

numpy ×1

python ×1