OpenCVによる撮影画像の連結をいろいろ試してみる【1】
OpenCVによる撮影画像の連結をいろいろ試してみる【1】
基本は、GitHubのコードを動かすだけ。
ORB feature based image stitching for UAV images
比較的シンプルなもの
環境
windows10 python3.7 cv2.version.opencv_version 4.5.3.56 <--実行時に確認
↓ pip
opencv-contrib-python 4.5.3.56 opencv-python 3.4.15.55
URL
https://github.com/cugblw/UAV-Image-stitching
試した結果
↑ 白で見える道とかが、なぜか、かなりずれている。こんなにずれるものか。。。。????
(かなりずれている、は、作業間違いでした。
ただ、下のほうで、二重になっているのでは?)
仕組みの確認
↓ORB
keypoints1, descriptors1 = orb.detectAndCompute(img1, None)#descriptors are arrays of numbers that define the keypoints keypoints2, descriptors2 = orb.detectAndCompute(img2, None)
↓ homography
# Establish a homography M, _ = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0)
補足
参照元で示されている図は、↓。たぶん、OpenCVのバージョン差による設定デフォルトの差だと思う。
本人の関連記事
(狭い視点ですが)DoxygenでPythonを扱うのは無理です。
(狭い視点ですが)DoxygenでPythonを扱うのは無理です。
検討条件
windows10
python3.7
doxygen1.9.5(2022/11/03にインストール)
検討結果
対象のpythonコード
import sys def tasu(aa,bb): c = aa + bb return c d = tasu(10,20) if d > 5: print("d",d) else: sys.exit()
結果
call graphとか、でましぇーん。
設定とか
javaを選ぶのがいいというウワサに従い。。。
そもそも、Pythonが選べないのが、つらすぎる。。。。
コメント
いろいろ機嫌をとれば何か出ると思いますが、、、、
ワタシの場合は、利用目的が逆で、
そのままのコードで、call graphとか出して、コードの理解を薦めたいという立場。。。
⇒ 快適に動作するバージョンが出たりしたら、コメント等頂けると幸甚!!
解決策。cv2.error: OpenCV(4.5.3) C:\Users\......src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 148879029 bytes in function 'cv::OutOfMemoryError'
解決策。cv2.error: OpenCV(4.5.3) C:\Users......src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 148879029 bytes in function 'cv::OutOfMemoryError'
エラー
環境
windows10
python3.7
エラー
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-_xlv4eex\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 148879029 bytes in function 'cv::OutOfMemoryError'
エラー詳細
Traceback (most recent call last): File "UAV-image-stitching.py", line 37, in <module> n = cv2.imread(img) cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-_xlv4eex\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 148879029 bytes in function 'cv::OutOfMemoryError'
解決策
言葉どおり、メモリが足らないので、
ファイルを整理するとか、
起動している別のアプリを閉じるとか。。。
です。
jupyter nbconvert --to python で、pyファイルにして実行したときのエラーで無条件にコメントアウトして問題なかった行。(2個)
jupyter nbconvert --to python で、pyファイルにして実行したときのエラーで無条件にコメントアウトして問題なかった行。
無条件にコメントアウトして問題なかった行
-- d --
display
display(df.iloc[(one_indexes[0]-3):(one_indexes[0]+2), 0:5].head(n=5))
↓ printにするのが良い。
print(df.iloc[(one_indexes[0]-3):(one_indexes[0]+2), 0:5].head(n=5))
-- g --
get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')
コメント
順次たします。
しかし、珍しいのは、10回に1回も出会わないはず。
「display⇒print」が示されていた。。。過去の自分に拍手。。。。
解決策。ImportError: cannot import name 'joblib' from 'sklearn.externals'
解決策。ImportError: cannot import name 'joblib' from 'sklearn.externals'
エラー内容
エラー
ImportError: cannot import name 'joblib' from 'sklearn.externals'
エラー詳細
Traceback (most recent call last): File "CAN_Autoencoders_LSTM.py", line 19, in <module> from sklearn.externals import joblib ImportError: cannot import name 'joblib' from 'sklearn.externals' (C:\Users\XYZZZ\AppData\Local\Programs\Python\Python37\lib\site-packages\sklearn\externals\__init__.py)
環境
windows10
sklearn 0.0 <--どういう意味?
Python 3.7.2
解決策
from sklearn.externals import joblib
↓ 置換え
import joblib
コメント
すみません、stackoverflowか何かをみました。どこか忘れました。
解決策。re.error: bad escape \s at position 0とか \z とか \p
- 解決策。re.error: bad escape \s at position 0とか \z とか \p
- エラー
- 解決策
- 補足
- 補足2
- 補足3(2023/04/02)
- 補足(2023/09/10)
- コメント
解決策。re.error: bad escape \s at position 0とか \z とか \p
エラー
エラーの内容
re.error: bad escape \s at position 0
re.error: bad escape \z at position 0
re.error: bad escape \p at position 0
エラー詳細
Traceback (most recent call last): File "C:\Users\xyzzz\AppData\Local\Programs\Python\Python37\lib\sre_parse.py", line 1021, in parse_template this = chr(ESCAPES[this][1]) KeyError: '\\p' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "re00.py", line 38, in <module> b = re.sub('y','\\p',a) File "C:\Users\xyzzz\AppData\Local\Programs\Python\Python37\lib\re.py", line 192, in sub return _compile(pattern, flags).sub(repl, string, count) File "C:\Users\xyzzz\AppData\Local\Programs\Python\Python37\lib\re.py", line 309, in _subx template = _compile_repl(template, pattern) File "C:\Users\xyzzz\AppData\Local\Programs\Python\Python37\lib\re.py", line 300, in _compile_repl return sre_parse.parse_template(repl, pattern) File "C:\Users\xyzzz\AppData\Local\Programs\Python\Python37\lib\sre_parse.py", line 1024, in parse_template raise s.error('bad escape %s' % this, len(this)) re.error: bad escape \p at position 0
環境
Python 3.7.2(windows10)
解決策
r と \ を加える。
b = re.sub('y',r'\\s',a)
補足
subの最初の引数側は、セーフ。(わけわからんというか、他の解説参照。)
b = re.sub('\s','y',a)
補足2
エラーとエラー対応後の様子を示すサンプルです。
import re r''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y','\s',a) print(b) # re.error: bad escape \s at position 0 ''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y',r'\\s',a) print(b) # x\szopqstu\x\\s\z\o\p\q\s\t r''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y','\z',a) print(b) # re.error: bad escape \z at position 0 ''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y',r'\\z',a) print(b) # x\zzopqstu\x\\z\z\o\p\q\s\t r''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y','\p',a) print(b) # re.error: bad escape \p at position 0 ''' a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('y',r'\\p',a) print(b) # x\pzopqstu\x\\p\z\o\p\q\s\t a = r'xyzopqstu\x\y\z\o\p\q\s\t' b = re.sub('\s','y',a) print(b) # xyzopqstu\x\y\z\o\p\q\s\t(こっちはセーフ)
補足3(2023/04/02)
↓このコードでエラー。
template_regex = re.sub(r'\\ +', r'\s+', template_regex)
エラー。↓
re.error: bad escape \s at position 0
これ↓でOK
template_regex = re.sub(r'\\ +', r'\\s+', template_regex)
補足(2023/09/10)
多少、この件、解読できたので、、、記事を書きました!!
keep-loving-python.hatenablog.com
コメント
アドバイスあれば、お願いします。
自分でコメントですが。。。この解決策の説明、良!