1
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ブラウザ上でもCVしたい! (jsモジュール?知らない子ですね)

Posted at

本記事はOpenCV Advent Calendar 2017 ‭FFFFFFFFFFFFFFD6‬ h 日目の記事です。

目的:

HTMLブラウザをbackendにしたOpenCVアプリケーションが開発できるっぽいので試してみましょうかね!
今年はjsモジュール(JavaScript Binding)をネタにする人がいると思いますので、あえて対抗心をメラメラ燃やしまして!
「またまたやらせていただきましたァン!!」

実行結果

image.png

システム概要

  1. broadway daemonを起動し、ブラウザで接続しておく(☆)
  2. OpenCV applicationは、何も考えずにhighguiを叩くだけ!
  3. highguiは、gtk3を使って描画をする。
  4. gtk3/gdkがbroadway clientとして、broadway daemonに描画を転送!
  5. broadway daemonがブラウザにWebsocketで転送、ブラウザ上は表示・操作可能に!

image.png

手順

  1. Ubuntu Serverをインストール。
  2. OpenCVをgdk3付きでコンパイル。
  3. $ broadwayd で、broadway daemonを立ち上げる
  4. Windows上のChromeで、Ubuntu Serverの8080ポートに接続。専用のデスクトップが表示。
  5. OpenCV application起動。

メリット

  1. OpenCV applicationには一切手を加えずに、サーバークライアント環境が構築できる。
  2. X11, Wayland, RDPと違い、専用のViewerを用意する必要がなく、対応システムが広範囲である。
  3. SSH接続サポートしているっぽい(コマンドラインヘルプより)。

デメリット

  1. 同時接続数は1限定っぽい?

まとめ

  • gtk3でサポートされているbroadway daemonを使う事で、ブラウザ上で動くOpenCVアプリケーション構築も簡単にできる。
  • 2017/10/21 明日のOpenCV Advent Calenderは(nil)さんの(nil)です!!

履歴

2017/10/17(1日目)

資格試験勉強も終わり、今年のOpenCV Advent Calendar何しようかなー、と悩む。

「そういえば、LinuxのOpenCV GUIって、Qtに依存しまくりだなあ… あれ、directfbとか使ってもっと軽量にできるようにしようかなー」と思い立つ。

対応したい機能

  1. 画像表示
  2. マルチウィンドウ表示
  3. キー入力対応
  4. マウス対応1
  5. ボタン対応
  6. マウス対応2
  7. トラックバー対応

まあ、昔、N88BASICで自前Window Systemとか作ってたし、いけるっしょ!と気楽に考える。

2017/10/18(2日目)

なん・・・だと・・・ DirectFBの公式サイトがつぶれてる。
https://bcopy.github.io/DirectFB/ を見ると、
こんな感じで、いけそう。

  1. 画像表示 → IDirectFBSurface
  2. マルチウィンドウ表示 → IDirectFBWindow
  3. キー入力対応 → IDirectFBInputDevice
  4. マウス対応1 → IDirectFBInputDevice
  5. ボタン対応 → IDirectFBInputDevice
  6. マウス対応2 → IDirectFBInputDevice
  7. トラックバー対応

しかも、設定ファイルでsystem=x11といれれば、GUI上で動作確認しつつ進められるですって?こりゃもう勝ったな、ガハハハハ。

あれ?GTKがbackendをDirectFBでできる?んじゃ、ぷよぐやみんぐもいらないな、これ設定だけでいけるな!!勝ったな、ガハハハハ!!

2017/10/19(3日目)

勝てなかったよ……

GTK3はbackendとしてDirectFB使えません、と。悲しみ…… さて、どうしたものかなあ。

Module Windows Linux MacOS
Qt
Carbon × ×
Cocoa × ×
GTK
W32 × ×
WinRT × ×
GTK2 Windows Linux MacOS
X11
Win32 × ×
MacOSX × × ◎ (Quarz API)
DirectFB
GTK3 Windows Linux MacOS HTML
X11 ×
Win32 × × ×
MacOSX × × ◎(Quarz API) ×
Broadway × × ×
Wayland ×  × 
Mir ×  × 

2017/10/20(最終日)

いっそbroadwayでHTMLブラウザ表示をネタにしよう、と思い立つ。

1
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?