0


私は画像処理をいじり始めました。画像行列、ベクトル (1 次元配列) を作成し、それぞれを再び画像に反転させたいと考えています。これはコードです (openCV の例から取得)。さらに、どのように正規化するか1次元配列?この配列を正規化した後、正規化後に画像にすることができますか?

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]]

すべての値を出力していない 3 つのドットの意味は何ですか? この特定の画像は 125X150 です


ありがとう。

編集

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")
4

1 に答える 1

1
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

ここに画像の説明を入力

于 2013-03-17T19:50:20.750 に答える