質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

726閲覧

ルックアップテーブル作成時の'function' object is not subscriptableのエラー対処

dendendenjirou

総合スコア40

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/18 14:34

医用画像(ピクセル値が0~1020)を扱っています。
wlで指定した値を中心にwwの範囲を256階調に割る振り表示するためにルックアップテーブルの作成をしようとしていますが
TypeError: 'function' object is not subscriptable
のエラーが出てしまい困っています。
どなたか、ご教授いただけないでしょうか。
よろしくお願いいたします。

コードは以下となります。

# -*- coding: utf-8 -*- import pydicom import numpy as np import cv2 import fileselect as fs def lookup_table(val): wl = cv2.getTrackbarPos('WL', 'dcm_image') ww = cv2.getTrackbarPos('WW', 'dcm_image') half_ww = ww/2 lookup_tbl = np.zeros((max_arr, 1), dtype='uint16') ww_low = wl - half_ww ww_high = wl + half_ww for i in range(len(lookup_tbl)): if i - ww_low <= 0: lookup_tbl[i][0] = 0 #wlからww/2以下は値0として表示 elif i >= ww_high : lookup_tbl[i][0] = 255 #wlからww/2以上は値255として表示 elif i > ww_low and i < ww_high: lookup_table[i][0] = int((i - ww_low) * (256 / (ww_high - ww_low)))        #上記部分の処理で表題のエラーが出て困っています。        # iとww_lowの値が同じになった時にエラーが出てしまい処理が止まってしまいます。 filenames = fs.many_files() dcm = pydicom.dcmread(filenames[0]) max_arr = dcm.pixel_array.max() min_arr = dcm.pixel_array.min() cv2.namedWindow('dcm_image') cv2.createTrackbar("WL", "dcm_image", int((max_arr-min_arr)/2), max_arr, lookup_table) cv2.createTrackbar("WW", "dcm_image", int((max_arr-min_arr)/2), max_arr, lookup_table) cv2.imshow('dcm_image',dcm.pixel_array) cv2.waitKey()

環境 python3.6.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lookup_table[i][0] ではなく、lookup_tbl[i][0] では?

投稿2020/02/18 15:22

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendendenjirou

2020/02/18 21:36

回答ありがとうございます。 問題解決に至り、本当に助かりました。 でも、こんな初歩的なところでお恥ずかしい・・・・・ ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問