画処理おじさんの徒然日記

画処理おじさんの徒然日記

画像処理や一眼レフカメラに関して書きます。試したことの備忘録的に。

ChatGPTで画像処理をやってみた!

概要

ご無沙汰しております。😅

久々のエントリーとなります。今回は、流行りのChatGPTを使ってC++画像処理プログラミングはどこまでできるのか?を試してみました。

Youtubeとか見てると、エクセルデータを放り込むだけで統計解析とかやってたので、これはやらねば!と思った次第です。

ChatGPTの事始め

まずは、ユーザー登録から。

openai.com

ここ のZennの記事を参考にしました。

ざっくり言えば、以下のような流れ。

  1. 公式から、「Try ChatGPT」を押す。
  2. ユーザー登録画面が表示されるので、画面に従い、メールアドレス、名前、携帯電話番号を登録。
  3. チャットの入力ページが表示されるので、いざ質問

Let's try 画像処理 with ChatGPT!

日本語でいいかどうか訪ねたところ、日本語OKとのことだったので、質問しました。

最初の質問は、

「画像データを平滑化するフィルタのC++コードを教えてください。」

するとすぐに、以下の回答がもらえました。

もう完璧じゃん!ほへ〜。😳

なるほど、ちょっと感心したのは…

  • OpenCVを使う
  • カーネルサイズの変更可能で、その説明もある
  • ボーダー処理の説明もある
  • 処理関数をmain関数とは切り離す
  • 画像表示も付けてくれる

なんだかなぁ…。

せっかくなので、OpenCV無しをリクエストしてみた

チャットで、上記回答の後で

OpenCVを使わない方法を教えてもらえますか。」とリクエストしてみた。

すると…以下の回答がもらえました。

main関数と解説はさっきと同じだったので割愛しますが、まぁ、ここまでできるんだなぁと感心しました。

終わりに

久しぶりのブログとなりましたが、徐々に復活させたいと思います。

ではでは!😎

Ubuntu 20.04 LTS + VS CODE でPHPをデバッグする方法

ご無沙汰しております。せっかく書き起こしたので、ブログに残します。

PHP debug 環境の構築

実行環境

VSCODE の設定

  • 拡張機能の追加
  • デバッグモードの設定
    • launch.json の編集
      • デフォルトで、"Listen for Xdebug" を選択
      • この雛形に、"program": "${file}" を追加

Ubuntu の設定

  • ここを参照しましたが、ちょっと違う部分があったので、確認取りつつアレンジしました。

  • apache2の拡張モジュールをインストール

    • sudo apt install php-xdebug
  • PHP の設定ファイルである下記の2つのファイルの編集

    • /etc/php/7.4/apache2/php.ini
    • /etc/php/7.4/cli/php.ini
    • 行末に、以下の設定を追加 [XDebug] xdebug.remote_enable = On xdebug.remote_port = 9003 xdebug.remote_autostart = On
  • xdebug の設定ファイルの編集

    • /etc/php/7.4/apache2/conf.d/20-xdebug.ini に以下の設定を追加
    • zend_extension=/usr/lib/php/20190902/xdebug.so

確認方法

  • apache2 の再起動

    • sudo systemctl restart apache2
  • ブラウザを開いて http://localhost/info.php

    • xdebug の設定を確認
    • 上記の設定が反映されていいれ

M5Stack マイ天気予報への道

こんばんは。

 

明日からの始業を控えながら、仕事のことは一切考えないを貫いていた画処理おじさんです。

 

この冬休みは6日間と例年に比べて短く、また息子氏のお部屋大改造計画につきあわされたりと、なかなか忙しく過ごしていました。

 

M5Stack をいじろうにもナカナカまとまった時間が取れず、と言ってもテレビ見てたりでしたが、ようやく M5Stack に触ることができました。

 

試したのは、ネットワークに接続して OpenWeatherMap から天気予報を取得することです。基本は購入した書籍に従っただけですが、何とか WebAPI で情報をゲットするとこまで来ましたよ😂

 

f:id:noda60k:20210105001931j:image

 

写真は、取得した天気予報です。時間が変だなと思ったのですが、どうやら UTC らしく、9時間の調整が必要でした。

 

やっと、ここまで来たって感じです。

 

私の Twitter の TL 見てると、みなさんロボットアームのようなもので遊んでいるようです。うらやましいなぁ。

 

私はまだまだネットにつなげるくらいしかできておりません。今は書籍を基に、M5Stack のできる事の調査と簡単なアプリを作って試すって段階です。

 

天気予報にしても、表示含めてもうちょっと何か出来そうだな、と思案しております。

 

ではでは😎

 

M5Stack 9軸センサを使ってみた

こんばんは。

前回は、ボタン操作で画像の切り替えをやっていましたが、今回は9軸のセンサを使って、やってみました。

southvillage.hatenablog.jp

今回試したのは、9軸センサを使った本体の向きの取得です。具体的には、

  • 寝かせた状態を電源OFF、立たせた状態をONとして画像を表示させる
  • 回転で画像を切り替える
  • 向きと画像を固定し、立たせたときの向きに合わせた画像を表示する

下記に動画を載せました。本体の向きに応じて、画像の向きも変えたかったのですが、力尽きてしまい、そこまではやっていません。M5Stackのライブラリに画像の回転はなかったようで…。自力で作るか、回転した画像を予め用意する必要があります。

サンプルコードは、下記のGithubにありますので、よかったらどうぞ。

github.com

ではでは。

M5Stack 基本動作から実装中

こんばんは。M5Stackの続きです。

前回紹介した本を読みながら、粛々と基本的な機能の実装を始めましたので、ご紹介いたします。

southvillage.hatenablog.jp

今回実装してみたのは、

  • JPG画像の表示
  • 3ボタンの実装
  • 画像表示の明るさを変更する
  • シリアルによるプリントデバッグ

以下の動画には、左のボタンで画像が切り替わるってところまでを実装しましたが、その後に

  • 中央のボタンで画像を明るくする
  • 右のボタンで画像を暗くする

を追加しております。

ソースコードは以下のGithubリポジトリにおいてあるので、もしよろしければ…。

github.com

ではでは。;)

M5Stack 参考図書を買いました

こんばんは。プログラミングが趣味でしかできなくなってしまった画処理おじさんです。

先日購入した M5Stack ですが、ググってコードをコピペして天気予報を表示させるだけじゃ、それだけで終わってしまいそうな気がしてきまして…😅

と言うことで、先日のお休みにジュンク堂に出向いて、マニュアル的な本を探してきました。

Amazon で検索して、Kindle のサンプルをダウンロードして物色ってのも良かったんですが、やっぱ実際に手に取って軽く読んだほうが良いですよね。

Amazon で M5Stack で検索すると4冊くらいの本がヒットしたので読み比べてみました。

で、購入したのが、「M5Stack」ではじめる電子工作 という本です。

「M5Stack」ではじめる電子工作 (I・O BOOKS)

「M5Stack」ではじめる電子工作 (I・O BOOKS)

決して読みやすいページ構成って訳じゃないんですが、どういった機能が、どうプラグラミングすれば実現できるかが、割としっかりと網羅されていたので購入に至りました。

1〜3章を読めば、一通りの機能の確認はできそうです。

  • シリアル出力
  • 画面の色
  • 文字の位置、フォント、色
  • 9軸のIMUの値のとり方
  • 図形描画
  • ボタンの使い方
  • 音の鳴らし方

4章以降でも

等など、至れり尽くせりの内容です!

そして、お値段、1980円!

これは、買いでしょ!ってことで購入しました。さぁー!明日からがんばろう!

ではでは😎

M5Stack お天気表示までの道(1)

はじめに

M5Stack、どうやって遊んでいこうかと思いまして…。

southvillage.hatenablog.jp

前回の記事でも書きましたが、とりあえず天気予報の表示が面白いかな、と思い、やってみることに。

で、ググってみると、どうも同じやり方しかヒットしないんですよね。1年以上前の記事ですが、以下のリンクの方が先駆者、ということなんでしょうか。

kuracux.hatenablog.jp

それと、最近の Interface 誌にも M5Stack の連載記事があり、そこにも、この天気予報の表示の記事が載ってました。

ちなみに、第1回が天気予報、第2回が花粉情報、第3回が気象警報、第4回が鉄道の遅延情報をWebから情報を取得し、表示するって連載のようです。

今後のタスク

上記のリンクを元に、目標(=天気予報の表示)を達成するまでに超えなければならない壁を考え、タスク分割してみました。

  • シリアルで出力:デバッグに必要?
  • WiFi接続
  • 現在時刻の取得
  • 天気情報の入手
  • JSONのパーサー
  • 表示させる天気予報画像の作成
  • 上記を準備したら、取得した情報を元に予報を表示する

PlatformIO の簡単な使い方

VSCode の画面左下のボタン

f:id:noda60k:20201128230903p:plain

  • 上の図の右から2番目:ビルド
  • 上の図の右から3番目:アップロード(スケッチをPCからM5に)
  • 上の図の右から5番目:シリアルモニター

実行とデバッグ

  • ソースコードを編集したら、上図のボタンでビルド、アップロードするだけ
  • アップロード後、勝手に実行される
  • シリアルモニターに文字がプリントされる。
  • 適切なプリントを入れて、デバッグ

シリアル通信のモニタリングに挑戦

あれ?シリアルに出力されない

  • 上記のサンプルコード見ると、シリアル通信で文字を出力させてる
  • デバッグ環境がないときにやる、プリントデバッグの方法で必要だもんね
  • シリアル通信を確認するため、 gtkterm をインストールした

okchan08.hateblo.jp

  • 設定したが、何も表示されず…

やっと、シリアルモニターに出力された

VSCodeのPlatformIOの設定

  • M5Stackのライブラリをプロジェクトにリンク
  • 共通設定で、モニタースピードを115200 とした

main.cpp の書き方

  • M5Stack.h をインクルード
  • setup() 関数で M5.begin() を呼び出す!これか!
  • これしないとシリアルに出力されなかった

最後に

  • やっとタスクの1個が done となった…。
  • まだまだ使い勝手が分からず。苦労しますなぁ…。
  • まぁ、そこが面白いんだろうけど。

ではでは。