カテゴリー
OpenCV Python ただの現状記述 (Daily Activities) コンピューター (Computer) プログラミング (Programming)

Python3.7+OpenCVでの、ウインドウが消えない問題への対処法

Python3.7 + OpenCVにおいて、画像表示のためにウインドウを開くと無限ループに入り、ウインドウを消去できなくなります。この問題に対する対処法を見つけましたので公開します:

import cv2 as cv

my_img = cv.imread("myface.jpg", 1)
cv.imshow("My Face", my_img)

cv.waitKey(0) & 0xFF   # この引数を 0でなければならない
cv.destroyAllWindows()
cv.waitKey(1) & 0xFF     # この行をつけたさねば無限ループのまま
               # この引数は 1でなければならない

どうも OpenCVを Linux/MacOSにコンパイルする過程でバグが入っているようです

ちなみに waitKey()メンバー関数に対して16進数0xFF == 2進数11111111を論理積していますが、これは 64 bits OSの場合には、waitKey()の返り値がもとも8 bitsの値しか戻さない仕様になっているので、11111111を論理積することにより 16 bitsのアスキー値にするためです OSが 32 bitsであれば、この論理積は不要です

カテゴリー
ただの現状記述 (Daily Activities) インド (India) 冠動脈インターベンション (PCI) 外国訪問 (Foreign Visits) 慢性完全閉塞 (CTO) 経橈骨動脈的冠動脈インターベンション (TRI)

久しぶりのアーマダバード(Ahmedabad)

昨夜インド西部のパキスタンと国境を接する州グジャラート州(Gujarat)にある聖都アーマダバードに入りました。これまでの記録を見ると何と、この訪問が16回目ということになります。

最初の訪問は2002年01月21日となっていますので、何と丸18年間も訪れていることになります。従って、この街の変わり行き様をこの目で体験してきました。昔は街の道々には牛がたくさんたむろしていましたが、現在ではほとんど見ることができず、今回新しいターミナルビルからホテル(このホテルもMarriottが関与しているホテルです)への30分間ぐらいの移動の途中にも一匹の牛も見ませんでした。

19年前には何と、インド象が使役のために象使いに操られ道路を我が物顔で往来していましたし、街中でやはり運搬作業に従事するラクダもたくさん見ることができました。証拠写真はこれら2002年に街中で撮影したものです:

街中を歩く象
街中を歩く象
荷物を運ぶ象
荷物を運ぶ象
ラクダだっていたもの
ラクダだっていたもの
ラクダさんだって働いている
ラクダさんだって働いている

それが今ではすっかりこんな光景を見ることは無くなりました。

TRICO (Trans Radial Intervention Course)の course co-directorsの一人として、そして Tejas Patel先生に経橈骨動脈冠動脈インターベンションを教えた者として、Ahmedabadには1年に必ず一回は訪問してきました。

しかし、最近ではとても忙しくなり(片道24時間ぐらいかかるのです)、最後の訪問費 2016年10月16日でした。それ以来、実に3.5年ぶりの訪問ということになり、今回もTRIで治療するという制約の中で、多分とても難しい症例治療が用意されているのでしょう。まだ症例の内容に関しては何の情報も無く、ぶっつけ本番で治療します。現在 2月08日土曜日の 8:00AMですが、8:50AMにこのホテルを出発し、病院 (Apex Heart Institute)に向かいます。応援して下さいね!!

カテゴリー
Python ただの現状記述 (Daily Activities) コンピューター (Computer) プログラミング (Programming)

jupyter notebookで OpenCVを使い始め

jupyter notebookは Web Browser上に Pythonを用いてプログラム書いたり、計算したり、グラフや絵を書いたり、あるいは機械学習・人工知能も使える画期的な softwareです。もちろん Open Sourceで無料で使えます。

実際に jupyterを用いて絵を描くのがなかなかできませんでしたが、この書籍

OpenCV入門
OpenCV入門

を参考に何とかできるようになりました。このためには、terminalから bash/zsh commandsをたくさん打ち込まねばならないのですが、その手順に誤りがあるともう途端に駄目です。これに関してはここらへんのページを参考にさせて頂き、僕にとっては一週間がかりでようやく来ました。さて、そのコマンド列は以下の通りです

$cd Document/OpenCV/
$conda create -n OpenCV3 python=3.5
$conda activate OpenCV3
$conda info -e
$conda install -c menpo OpenCV3
$conda remove -n myipython --all
$conda info -e
$conda install notebook ipykernel
$ipython kernel install --user --name OpenCV3
$jupyter kernelspec list
$jupyter notebook

映し出した絵は以下の通りです

由布岳
由布岳

そしてこれを行った jupyter側のスクリプトは以下の通りです

import cv2
img = cv2.imread("./src/yufu_mountain.jpeg")
cv2.imshow("MOUNTAIN", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

カテゴリー
ただの現状記述 (Daily Activities) 日本国内 (Japan Domestic) 鎌倉 (KAMAKURA)

久しぶりの自転車乗り

本日はようやくフリーの一日を確保し、運転免許証更新を行いました。場所は鎌倉警察署なのですが、いつの間にやら新築移転していて、かつての場所よりも海の側に近づき、また建物もものすごく奇麗になっていて驚きました。

さて、そんなことより病院-自宅-鎌倉警察署-そしてもう一箇所と、四箇所を行ったり来たりしたのです。もちろん自転車での移動ですが、総延長は 20数キロだったと思います。

数年前までは出勤には、長いルート、つまり自宅から江ノ島まで出て、海岸通りを走り、若宮大路から北鎌倉に登り、それから病院まで距離にして 16Kmぐらいを自電車で走り出勤していたのです。それが、多分4年前から最短距離を走るようになってしまったのです。何と言っても北鎌倉の上り坂がきつく、足が遠のいてしまったのです。

そんな背景があったのですが、本日は坂道は自転車降りて押して行こう、と決めて自転車を用いました。しかし、頑張りました。そして無理だと思われた登坂をやりきりました。久しぶりだったので、そして今もそれができるのだ、と実証できたことがとても嬉しいのです。

カテゴリー
Haskell コンピューター (Computer) プログラミング (Programming)

Haskellに惑わされ – 14

久しぶりの Haskell挑戦です さっぱり前に進みません 今回ようやく動作した snippetはこんな感じです

divs :: Fractional a => a -> a -> a
divs n m = n / m

これでようやく Haskell GHCiにおいて

Prelude> :l test.hs
[1 of 1] Compiling Main             ( test.hs, interpreted )
Ok, one module loaded.

として compileされます。そして、この GHCiの中で

*Main>divs 99 4

と打つことにより

24.75

と出力されます。要するに divsという新しい割り算関数を作成したことになるのです。何というか厳しくてなかなかここに至りません。難しい 難しい

何が難しくてなかなか理解できないのか? と云えば、たとえばこの test.hsという名前のファイルに書かれている通りを GHCiに打ち込むと

Prelude>divs :: Fractional a => a -> a -> a

、何と以下のようなメッセージで弾かれるのです・・・

:1:1: error:
    • Variable not in scope: divs :: a1 -> a1 -> a1
    • Perhaps you meant ‘div’ (imported from Prelude)

この GHCiで :load test.hsした時との落差に目がくらむのです。何故? 何故? なぜなんだー 全くわからないのです。どなたか教えて下さい。僕にとって Haskellを学ぶ上で一番の障害がこの GHCiでのコンバイラと、インタープリーターとの間の落差なのです。

カテゴリー
ただの現状記述 (Daily Activities) シンガポール (Singapore) 外国訪問 (Foreign Visits)

久しぶりのシンガポール

シンガポールの夜景
シンガポールの夜景

今現在 Singaporeに居るのですが、随分と久しぶりの印象です そこで Calenderで調べるとやはり前回は 2018年1月24日 AsiaPCRの時でした。その時は確か Singapore Heart Center (Singapore General Hospitalの一分野)からライブデモンストレーションを飛ばしたのでした。

今回は、座長とか moderatorのみ行い、手技は無し、自分自身の発表も無し、というものでした。当初発表があったのですが、辞退したのです。これから途中で食事をとり、それから夜行便で帰国します。

 

カテゴリー
PHP SQL ただの現状記述 (Daily Activities) インターネット一般 (Internet General) プログラミング (Programming)

昨日よりぶったまげました

いやあ 昨日この現象に気づきました 原因精査にもう一杯一杯となってしまったのです 色々な懸案事項をそっちのけで原因究明に身も心も取られてしまいました

しかし、突然閃きが起こり全て解決しました。それは西暦年号が当然ながら現在は 2020年であり、2019年ではないからだったのです。

現在、鎌倉ライブデモンストレーションの Home Pageにアクセスして例えばコメディカル・セッションを覗いて下さい

そうするとこんなふうにもぬけの殻状態のページが見えるでしょう

もぬけの殻のページ
もぬけの殻のページ

我ながら最初にこの画面見た時、「あーっ、とてつもなく良くないことが起こっている、ページを乗っ取られたのかな」と頭の中が真っ白でした。冷静になり、local serverで動かしても同様なのです。これはおかしい、サーバーを乗っ取られたのであれば、ローカルでも同じ現象が出るのはおかしい、そのように考えました。

そして今朝、シンガポールでコーヒーを飲みながらテストしていて気が付きました。それは kamakuralive.net全体の設定ページに仕込んである次の一文です

$this_year = date('Y');

これにより例えば 次のSQL文が発行され、データベースからデータを読み込むのです

$stmt = $pdo->prepare( "SELECT * FROM `session_tbls2019` WHERE `class` = 'com' AND `year` = '" . $this_year . "' ORDER BY `sessionNo` ASC;" );

要するに、プログラムを時間経過から独立させるために、わざわざ $this_yearという変数を設定し、それを用いているのです。

当然のことながら、現在の date(‘Y’); という文は、’2020’を返します。従って、それに従う SQL文ではデータが無く、空白となるのでした。つまり年号が 2019年から 2020年に変わった途端に見かけ上データが表示されなくなるのでした。でもこれっていいことですね。昔のページが自動的に消失するに等しいのですから・・・

カテゴリー
ただの現状記述 (Daily Activities)

朝からまったく

何時ものように、6:15AM頃には自宅出発、自転車で病院に向かいました。途中、東海道線をくぐる自転車・歩行者専用の小さなトンネルがあるのですが、何時もそこを通過する時には、くぐった後にくる急な短い登りに対応して、ギアをlowに入れます。

しかし、今朝はその瞬間にチェーンが外れ、そのままひっかかってしまいギアが固定されてしまいました。幸い、タイヤは前方向には空回りできたので、それから病院まで自転車押しながら来たのです。

まったく日本のテクノロジーなんて言っても簡単にほころびが出てきますよね。こんなことも解決できないのでしょうか? この自転車同様の事故で、昨年末にはチェーンが切断され、修理に出したばかりなのですが、修理から戻ってきた直後から前ギアの入りが悪い、と思っていました。調整不足なのだと思います。残念ながら自分では調整する能力無いので、プロに頼むしか無いのですが、プロならばプロらしくして欲しいものです。

カテゴリー
R - 統計ソフト

それでは如何にして xquartzを最初から立ち上げておくか?

それは簡単です https://pc-karuma.net/mac-app-startup/ ここをご覧下さい

注意点としては、xquazrtz.appをapplication folderで探しても見つかりません、それはapplication folderの中の ユーティリティの中に存在します。それだけ気をつければ簡単ですね

カテゴリー
R - 統計ソフト

EZRおよび R commanderについて

はてはた不思議、先日は xquartz.appを何回かインストールしてたらば、突然 EZRが動作するようになったので、すっかり安心していました

しかし、本日またEZRを立ち上げたところ Rcmdrがうまく動作しない、というようなエラーが出て EZRが立ち上がりません。要するに Rcmdrがうまく動作しないのです。

既に幾つかの Home Pageにも記載がありますように、R commanderの動作には xquartz.appが必要なのですよね。でも、正直それが立ち上がっていないと R commanderが動作しない、とは思ってもいませんでした。

試みに、xquartz.appを停止した状態と、動作しいる状態で R commanderを立ち上げたところ、xquartz.appが動作中でないと EZRも R commanderも正常に動作しないことが確認されました。

さて、となると R.appを立ち上げた時に、xquartz.appが自動的に立ち上がるように設定すればいいことになりまよね。これはどうすればいいのかな?