私はこれに対して可能な解決法を探しましたが、すべての答えが本当に明確でないか不完全です。この画像にグレースケール画像にグラデーションマップを適用するには
:(#00aeefに#の582f91)
image = Image.open('image.jpg')
私はこのグラデーションを適用するにはどうすればよい:
ので、私はメモリにアップロードされた画像を持っていると言う
だから私おかげで先に
:tがこのなります。
私はこれに対して可能な解決法を探しましたが、すべての答えが本当に明確でないか不完全です。この画像にグレースケール画像にグラデーションマップを適用するには
:(#00aeefに#の582f91)
image = Image.open('image.jpg')
私はこのグラデーションを適用するにはどうすればよい:
ので、私はメモリにアップロードされた画像を持っていると言う
だから私おかげで先に
:tがこのなります。
私はこれを達成するためにcythonスクリプト(高フレームレートで更新する必要がある)を使用して以前にこの問題を解決しました。ここで、ファンクションへの入力cmap
は、行列の平坦な配列で、各行は色に対応し、R G B値にcoloumnsします。私はウェブサイトを使ってグラデーションを生成しましたが、どちらを覚えていないのでしょうか。画像は速度のために平坦化され、0〜255のint値の間でスケーリングされました。あなたが使用してcythonをインストールしたらこれはその後、交流ファイルとの.soを作成する必要があり
pip install cython
pyhton setup.py build_ext --inplace
に
ピップつまり、コマンドラインから設定スクリプトを実行する必要がありますcython機能をインポートして使用できるようにファイル。
Cythonコード:
import numpy as np
cimport numpy as np
cimport cython
DTYPE1 = np.float
ctypedef np.float_t DTYPE1_t
DTYPE2 = np.int
ctypedef np.int_t DTYPE2_t
@cython.boundscheck(False)
@cython.wraparound(False)
def mat_to_im(np.ndarray[DTYPE2_t, ndim=1] data, np.ndarray[DTYPE2_t, ndim=1] cmap):
cdef int wid = data.size
cdef int x, x1, y
cdef np.ndarray[DTYPE2_t, ndim=1] im = np.zeros([wid*3], dtype=DTYPE2)
for x in range(wid):
x1 = x*3
y = data[x]*3
im[x1] = cmap[y]
im[x1+1] = cmap[y+1]
im[x1+2] = cmap[y+2]
return im
セットアップファイル:
from distutils.core import setup, Extension
from Cython.Build import cythonize
import numpy
setup(
name='image convert',
version='1',
description='color map images',
author='scooper',
install_requires=['numpy'],
ext_modules=cythonize([
Extension("image_convert", ["image_convert.pyx"], include_dirs=[numpy.get_include()])])
)
これは、すべての問題(私はより大きなコードファイルからセットアップを切ってきたし、それをテストしていない)を支援する必要があります。http://cython.readthedocs.io/en/latest/src/quickstart/build.html
だけLinearSegmentedColormapを使用します。
# make a cmap
mycm=matplotlib.colors.LinearSegmentedColormap.from_list('',['#582f91', '#00aeef'])
# apply on a canal
imgrad=mycm(image[:,:,0])
基本的にマッピングを使用してピクセル値を個別に再割り当てする必要がありました。返されたイメージは、元のイメージのサイズに再形成されました。 – samocooper
ありがとうございました。私は今それを試してみましょう。 –
Umm、ok。私はこれまでCythonを使ったことがありません。あなたは私にクイックガイドを教えてもらえますか?あなたの機能をどうやって使うのですか? –