2

一連の画像の露出とカラー パレットを正規化したい。コンテキストとして、これは医療画像の画像分類でニューラル ネットワークをトレーニングするためのものです。何十万もの画像に対してもこれを行っているため、効率が非常に重要です。

これまでのところ、私は VIPS、特に PyVIPS を使用しており、そのライブラリを使用したソリューションを好むでしょう。この回答を見つけてドキュメントを調べた後、私は試しました

x = pyvips.Image.new_from_file('test.ndpi')
x = x.hist_norm()
x.write_to_file('test_normalized.tiff')

しかし、それは常に真っ白な画像を生成するようです.

4

1 に答える 1

2

hist_equalヒストグラムの均等化が必要です。

主なドキュメントは次のとおりです。

https://libvips.github.io/libvips/API/current/libvips-histogram.html

ただし、大きなスライド画像の場合は非常に遅くなります。スライド全体を 1 回スキャンしてヒストグラムを作成し、もう一度スキャンして均等化する必要があります。低解像度レイヤーのヒストグラムを見つけて、それを使用して高解像度レイヤーを均等化する方がはるかに高速です。

例えば:

#!/usr/bin/env python3

import sys
import pyvips

# open the slide image and get the number of layers ... we are not fetching 
# pixels, so this is quick
x = pyvips.Image.new_from_file(sys.argv[1])
levels = int(x.get("openslide.level-count"))

# find the histogram of the highest level ... again, this should be quick
x = pyvips.Image.new_from_file(sys.argv[1], 
                               level=levels - 1)
hist = x.hist_find()

# from that, compute the transform for histogram equalisation
equalise = hist.hist_cum().hist_norm()

# and use that on the full-res image
x = pyvips.Image.new_from_file(sys.argv[1])

x = x.maplut(equalise)

x.write_to_file(sys.argv[2])

もう 1 つの要因は、ヒストグラムの均等化が非線形であるため、明度の関係が歪むことです。また、色の関係を歪めたり、ノイズや圧縮アーティファクトがおかしくなったりすることもあります。ここにある画像でそのプログラムを試しました:

$ ~/try/equal.py bild.ndpi[level=7] y.jpg

ここに画像の説明を入力

ストライプはスライド スキャナーによるもので、醜いフリンジは圧縮によるものです。

代わりに、低解像度レベルから画像の最大値と最小値を見つけて、それらを使用してピクセル値の単純な線形ストレッチを行うと思います。

何かのようなもの:

x = pyvips.Image.new_from_file(sys.argv[1])
levels = int(x.get("openslide.level-count"))
x = pyvips.Image.new_from_file(sys.argv[1],
                               level=levels - 1)
mn = x.min()
mx = x.max()
x = pyvips.Image.new_from_file(sys.argv[1])
x = (x - mn) * (256 / (mx - mn))
x.write_to_file(sys.argv[2])

Regionpyvipsの新機能を見つけましたか? これにより、トレーニング用のパッチの生成が非常に高速になり、場合によっては最大 100 倍高速になります。

https://github.com/libvips/pyvips/issues/100#issuecomment-493960943

于 2019-11-03T03:32:20.317 に答える