python3のOpenCVでjpeg2000画像の情報を配列に入れたいです
OpenCVでjpeg2000の画像を配列に入れようとするとエラーになり配列に入れることができません。
現在使用しているコードではjpeg2000は読み取れずjpegは読み取れるようです。
なぜできないのかかわからないので教えていただければ嬉しいです。
発生している問題・エラーメッセージ
Traceback (most recent call last): File ".\chap1.py", line 10, in <module> cv2.imshow("JPEG200", img) cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
該当のソースコード
Python3
1import numpy as np 2import os 3os.environ["OPENCV_IO_ENABLE_JASPER"] = "True" 4import cv2 5 6#表示したい画像:T53SLV_20190504T014701_B04_10m.jp2 7img = cv2.imread("T53SLV_20190504T014701_B04_10m.jp2") 8cv2.imshow("JPEG2000", img) 9cv2.waitKey(0) 10cv2.destroyAllWindows() 11
試したこと
jpegやpngファイルで試してみたところ配列に情報が入りました。
実際に使用しているjpeg2000画像を他のアプリで開いてみると無事画像が表示されます。
補足情報(FW/ツールのバージョンなど)
複数のjpeg2000の画像を試してみましたがどれも同じようなエラーが出ます。
画像はすべて「Copernicus Open Access Hub(https://scihub.copernicus.eu/dhus/#/home)」から取得したSentinel-2の衛星画像です。
jpeg2000の画像が必要なのでフォーマットの変換なしでの方法を知りたいです。
ubntuでの作業に切り替えています。
ですが同じエラーが発生しています。
@echo off
setlocal enabledelayedexpansion
cd C:\Users\MG020015\Desktop\ccc
for %%f in (*.csv) do (
set AAA=%%f
echo !AAA!
ren !AAA! !AAA:~0,-3!txt
)
set file_a=aaa.txt
set file_b=bbb.txt
pause
set /a num=0
for /f "tokens=* delims=" %%a in (%file_a%) do (
set /a num=num+1
set line_a=%%a
call :sub
echo !line_b!
echo !line_a!,!line_b! >> ccc.txt
)
ren ccc.txt ccc.csv
pause
:sub
set /a i=0
echo !num!
for /f "tokens=* delims=" %%b in (%file_b%) do (
set /a i=i+1
if !i!==!num! (
set line_b=%%b
echo %%b
echo !line_b!
goto :break
)
)
:break
