作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始搞乱图像处理,我想制作一个图像矩阵, vector (一维数组)并将它们再次反转为图像,这是代码(取自openCV的示例),此外,我将如何进行标准化一维数组?我将这个阵列标准化后会发生什么,我可以在标准化后使其成像?
import cv2.cv as cv
import numpy
img=cv.LoadImage("test3.JPG")
mat=cv.GetMat(img)
a = numpy.asarray(mat)
print a
[[[150 150 150]
[171 171 171]
[242 242 242]
...,
[252 252 252]
[252 252 252]
[252 252 252]]
[[151 151 151]
[170 170 170]
[244 244 244]
...,
[252 252 252]
[252 252 252]
[252 252 252]]
[[159 159 159]
[172 172 172]
[248 248 248]
...,
[252 252 252]
[252 252 252]
[252 252 252]]
...,
[[251 251 251]
[251 251 251]
[251 251 251]
...,
[249 249 249]
[248 248 248]
[248 248 248]]
import cv2.cv as cv
import numpy
import Image
def normalize(arr):
for i in range(3):
minval = arr[...,i].min()
maxval = arr[...,i].max()
if minval != maxval:
arr[...,i] -= minval
arr[...,i] *= (255.0/(maxval-minval))
return arr
img=cv.LoadImage("test3.JPG")
mat=cv.GetMat(img)
a = numpy.asarray(mat)
b = normalize(a)
print b
with open('1.txt.',"w") as f:
f.write("\n".join(" ".join(map(str, x)) for x in (b)))
im = Image.fromarray(b)
im.save("12.jpeg")
最佳答案
def normalize(arr):
"""
Linear normalization
http://en.wikipedia.org/wiki/Normalization_%28image_processing%29
"""
# Do not touch the alpha channel
for i in range(3):
minval = arr[...,i].min()
maxval = arr[...,i].max()
if minval != maxval:
arr[...,i] -= minval
arr[...,i] *= (255.0/(maxval-minval))
return arr
import numpy as np
import Image
def normalize(arr):
for i in range(3):
minval = arr[..., i].min()
maxval = arr[..., i].max()
if minval != maxval:
arr[..., i] -= minval
arr[..., i] *= (255.0 / (maxval - minval))
return arr
img = Image.open('orig.jpg').convert('RGBA')
a = np.array(img)
b = normalize(a)
im = Image.fromarray(b)
im.save('output.jpg')
orig.jpg
:
output.jpg
:
关于python - 将图像(png)转换为矩阵,对其进行归一化,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465272/
我是一名优秀的程序员,十分优秀!