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

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

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

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

2445閲覧

ヒストグラム平坦化を行いたい!

Deep_passion

総合スコア45

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/09/30 22:08

編集2021/09/30 23:44

前提・実現したいこと

イメージ説明

ヒストグラム平坦化の記事参照
to_rgbの画像をヒストグラム平坦化を行いたいのですが、エラーがでまして、前に進めません。
versionとかがおかしいのかと、簡単な画像をやってみましたら、うまくいきました。
ですので、この写真になにか問題があるのかなと思いました。
ですが、shapeなどを確認しても、標準化したってことしかわかりません。

よろしくおねがいします。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- error Traceback (most recent call last) /tmp/ipykernel_42/3202283151.py in <module> 8 9 # #画像をRGBからグレースケールに変更 ---> 10 gray_img = cv2.cvtColor(to_rgb, cv2.COLOR_RGB2GRAY) 11 # cv2.COLOR_BGR2GRAY 12 error: OpenCV(4.5.3) /tmp/pip-req-build-fvfwe_ss/opencv/modules/imgproc/src/color.simd_helpers.hpp:94: error: (-2:Unspecified error) in function 'cv::impl::{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::impl::{anonymous}::Set<3, 4>; VDcn = cv::impl::{anonymous}::Set<1>; VDepth = cv::impl::{anonymous}::Set<0, 2, 5>; cv::impl::{anonymous}::SizePolicy sizePolicy = cv::impl::<unnamed>::NONE; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]' > Unsupported depth of input image: > 'VDepth::contains(depth)' > where > 'depth' is 6 (CV_64F)

コードはあまりみないのでなれないと思います。ですので、簡単にまとめます。
dicom形式のmri画像をflairモダリティをt1,t2から作成しています。
つまり、画像が3つ重なっていて、それをresampleしてるってことです。

shapeがあっていればいいのではないのですか?
よくわかりかねます。そのあたりが、グレイスケールに変更しているのにも関わらずです.

reader = sitk.ImageSeriesReader() reader.LoadPrivateTagsOn() def resample(image, ref_image): resampler = sitk.ResampleImageFilter() resampler.SetReferenceImage(ref_image) resampler.SetInterpolator(sitk.sitkLinear) resampler.SetTransform(sitk.AffineTransform(image.GetDimension())) resampler.SetOutputSpacing(ref_image.GetSpacing()) resampler.SetSize(ref_image.GetSize()) resampler.SetOutputDirection(ref_image.GetDirection()) resampler.SetOutputOrigin(ref_image.GetOrigin()) resampler.SetDefaultPixelValue(image.GetPixelIDValue()) resamped_image = resampler.Execute(image) return resamped_image %%time # filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/{train_dirs[2]}/T1w') filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/00524/T1w') reader.SetFileNames(filenamesDICOM) t1_sitk = reader.Execute() filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/00524/FLAIR') # filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/{train_dirs[2]}/FLAIR') reader.SetFileNames(filenamesDICOM) flair_sitk = reader.Execute() # filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/{train_dirs[2]}/T2w') filenamesDICOM = reader.GetGDCMSeriesFileNames(f'{train_path}/00524/T2w') reader.SetFileNames(filenamesDICOM) t2_sitk = reader.Execute() flair_resampled = resample(flair_sitk, t1_sitk) t2_resampled = resample(t2_sitk, t1_sitk) t1_sitk_array = normalize(sitk.GetArrayFromImage(t1_sitk)) flair_resampled_array = normalize(sitk.GetArrayFromImage(flair_resampled)) t2_resampled_array = normalize(sitk.GetArrayFromImage(t2_resampled)) stacked = np.stack([t1_sitk_array, t2_resampled_array, flair_resampled_array,]) to_rgb = stacked[:,t1_sitk_array.shape[0]//2,:,:].transpose(1,2,0) im = Image.fromarray((to_rgb * 255).astype(np.uint8))

該当のソースコード

import cv2 import numpy as np # #画像をRGBからグレースケールに変更 gray_img = cv2.cvtColor(to_rgb, cv2.COLOR_RGB2GRAY) # cv2.COLOR_BGR2GRAY #ヒストグラム平坦化 # hist_img = cv2.equalizeHist(gray_img) hist_img = cv2.equalizeHist(gray_img) #処理後の画像を保存 # cv2.imwrite('x-ray_hist.png', hist_img) plt.imshow(hist_img)

試したこと

1,shape確認
2,version確認(簡単な画像検証)
3,エラーをコピペしましても該当加所なし

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

Python3 (3.7.4)
Jupyter Lab version 1.1.4
macbookpro 16

でーたの追加
こちらのtrainのなかにあります。

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

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

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

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

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

ppaul

2021/09/30 22:50

質問を編集して元の画像を載せてください。
bsdfan

2021/09/30 23:06

to_rgbはどうやって作ったものですか? エラーに出ている Unsupported depth of input image で検索すればわかりますが、原因は型にありそうです。
Deep_passion

2021/09/30 23:35

作り方を載せました。dicom関連です。
Deep_passion

2021/09/30 23:38

--------------------------------------------------------------------------- error Traceback (most recent call last) /tmp/ipykernel_42/4079014736.py in <module> 17 #処理後の画像を保存 18 # cv2.imwrite('x-ray_hist.png', hist_img) ---> 19 cv2.imshow(hist_img) error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'imshow' > Overload resolution failed: > - imshow() missing required argument 'mat' (pos 2) > - imshow() missing required argument 'mat' (pos 2) > - imshow() missing required argument 'mat' (pos 2) エラーがでました。
Deep_passion

2021/09/30 23:40

--------------------------------------------------------------------------- error Traceback (most recent call last) /tmp/ipykernel_42/182205083.py in <module> 16 #処理後の画像を保存 17 # cv2.imwrite('x-ray_hist.png', hist_img) ---> 18 cv2.imshow('hist_img', hist_img) error: OpenCV(4.5.3) /tmp/pip-req-build-fvfwe_ss/opencv/modules/highgui/src/window.cpp:1274: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
Deep_passion

2021/09/30 23:44

一番さいごのぶ部にございます。
guest

回答1

0

ベストアンサー

bsdfanさんが書かれているとおり、dtypeの問題です。

以下のように変更して動かしてみてください。

python

1import cv2 2import numpy as np 3 4to_rgb_8 = (to_rgb * 255).astype(np.uint8) 5 6# #画像をRGBからグレースケールに変更 7gray_img = cv2.cvtColor(to_rgb_8, cv2.COLOR_RGB2GRAY) 8# cv2.COLOR_BGR2GRAY 9 10#ヒストグラム平坦化 11# hist_img = cv2.equalizeHist(gray_img) 12hist_img = cv2.equalizeHist(gray_img) 13 14#処理後の画像を保存 15# cv2.imwrite('x-ray_hist.png', hist_img) 16cv2.imshow('hist_img', hist_img)

投稿2021/09/30 23:34

編集2021/09/30 23:36
ppaul

総合スコア24666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問