2

CCITT T.3 圧縮 tiff を python にロードし、そこからピクセル マトリックスを取得しようとしています。それは単なる論理行列でなければなりません。

pylibtiff と PIL を使用してみましたが、それらをロードすると、返される行列が空になります。これら 2 つのツールが CCITT の読み込みをサポートしているが、ピクセルへのアクセスはサポートしていないことを多くの場所で読みました。

画像から論理行列を取得して Python コードで実行できる限り、画像を変換することにオープンです。クレイジーなことは、画像の1つをペイントで開き、変更せずに保存してから、pylibtiffでロードしようとすると、機能することです。Paint はそれを LZW 圧縮に再圧縮します。

私の本当の質問は次のとおりだと思います:CCITT画像をマトリックスにネイティブにロードする方法、またはpythonを使用して画像をLZWに変換する方法はありますか??

ありがとう、

タイラーザマイラー

4

2 に答える 2

1

Python を完全に使用するのではなく、netpbmに頼るのが最善の方法のようです。

import Image
import ImageFile
import subprocess

tiff = 'test.tiff'
im = Image.open(tiff)
print 'size', im.size
try:
    print 'extrema', im.getextrema()
except IOError as e:
    print 'help!', e, '\n'

print 'I Get by with a Little Help from my Friends'
pbm_proc = subprocess.Popen(['tifftopnm', tiff],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE)
(pbm_data, pbm_error) = pbm_proc.communicate()
ifp = ImageFile.Parser()
ifp.feed(pbm_data)
im = ifp.close()
print 'conversion message', pbm_error,
print 'extrema', im.getextrema()
print 'size', im.size
# houston: we have an image
im.show()

トリックを行うようです:

$ python g3fax.py 
size (1728, 2156)
extrema help! decoder group3 not available 

I Get by with a Little Help from my Friends
conversion message tifftopnm: writing PBM file
extrema (0, 255)
size (1728, 2156)
于 2010-07-28T23:52:51.540 に答える
0

で実行tiffcpsubprocessて LZW に変換 ( -c lzwswitch ) してから、 で正常に処理してみてはpylibtiffどうでしょうか。tiffcpWeb 上に転がっている Windows ビルドがあります。正確にはPythonネイティブのソリューションではありませんが、それでも...

于 2010-07-28T20:19:10.337 に答える