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

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

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

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

Python

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

Q&A

0回答

564閲覧

pythonのOpenCVを用いたjp2画像の表示

assemble

総合スコア8

OpenCV

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

Python

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

0グッド

0クリップ

投稿2020/11/17 08:18

#pythonのOpenCVを用いてjp2画像を表示したいです
OpenCVでjp2の画像を表示しようとするとエラーになります。
jpegなどは読み取れるようです。
なぜなのか教えていただきたいです。
#発生している問題・エラーメッセージ

python3

1imread_('S2A_MSIL2A_20190504T014701_N0211_R017_T53SLV_20190504T043621.SAFE/GRANULE/L2A_T53SLV_A020177_20190504T014655/IMG_DATA/R10m/T53SLV_20190504T014701_B04_10m.jp2'): can't read header: OpenCV(4.2.0) /io/opencv/modules/imgcodecs/src/grfmt_jpeg2000.cpp:196: error: (-215:Assertion failed) depth == 8 || depth == 16 in function 'readHeader' 2 3Traceback (most recent call last): 4 File "chap5.py", line 16, in <module> 5 cv2.imshow("MAP", img) 6cv2.error: OpenCV(4.2.0) /io/opencv/modules/highgui/src/window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow' 7

#該当のソースコード

python3

1import numpy as np 2import os 3import cv2 4 5os.environ["OPENCV_IO_ENABLE_JASPER"] = "True" 6 7#絶対パス 8path_b4 = ('S2A_MSIL2A_20190504T014701_N0211_R017_T53SLV_20190504T043621.SAFE/GRANULE/L2A_T53SLV_A020177_20190504T014655/IMG_DATA/R10m/T53SLV_20190504T014701_B04_10m.jp2') 9 10#jp2画像を読み込む 11img = cv2.imread(path_b4, cv2.IMREAD_COLOR) 12 13#ウィンドウに表示 14cv2.imshow("MAP", img) 15 16#終了処理 17cv2.waitKey(0) 18cv2.destroyAllWindows()

#試したこと
jpegやpngファイルで試してみたところ画像が表示されました。
また別の開き方では画像が開けたのでjp2画像自体は問題ないと思われます。
以下にjp2を開くことのできたコードを示します。

python3

1import os 2import matplotlib.pyplot as plt 3import numpy as np 4from PIL import Image 5 6#絶対パス 7path_b4 = ('S2A_MSIL2A_20190504T014701_N0211_R017_T53SLV_20190504T043621.SAFE/GRANULE/L2A_T53SLV_A020177_20190504T014655/IMG_DATA/R10m/T53SLV_20190504T014701_B04_10m.jp2') 8 9#jp2画像の読み込み 10im = Image.open(path_b4) 11 12#画像を配列に変換 13im_list = np.array(im) 14 15#コンター図作成 16plt.imshow(im_list, cmap="jet") 17plt.colorbar () 18plt.xlabel('X') 19plt.ylabel('Y') 20plt.show()

#補足情報(FW/ツールのバージョンなど)
jp2の画像が必要なのでフォーマットの変換なしでの方法を知りたいです。
ubntuでプログラムを動かしています。
jp2画像は(10980, 10980)の大きさです。

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

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

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

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

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

jbpb0

2021/01/26 10:09

> 別の開き方では画像が開けた PILで読めるのに、なんでOpenCVにこだわるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問