スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 需要は無いこともない? | トップページ | もう少し膨らませようかと »

環境によっては画像が異なる

ここ数日、YouTubeの動画に表示される広告を画像認識結果からスキップさせるプログラムを作っているのだが、Ubuntu18.04LTS上のFirefoxを使う分には、普通に動作する様になっている。ただし、他環境ではキャプチャー画像が異なる事があるので対策が必要だ。

開発中のプログラムは、とりあえず、今現在のメイン環境である所のUbuntu18.04LTS上で開発しつつ、動作確認は、主に、この環境でのメインブラウザになるFirefoxを使って行っている。

しかし、最終的には、Windows / macOSでも動作させる事になるし、巷のブラウザシェアでは、Chromeがダントツの最大シェアを獲得しているので、YouTubeがChromeで再生された場合にも、動作させるつもりだ。

なので、そろそろ、色々な環境で、今現在の画像認識方法が通用するかどうかを確認してみているのだが、まず、今時のmacOSでは、HiDPI表示されている事が多いので、HiDPI表示時には、それ用の対応が必要になる。

具体的には、HiDPI表示時には、人間的には、表示がより鮮明になる感じなのだが、プログラム的には、普通は、画像の縦横の大きさが2倍になったりするので、例えば、オーバーレイ広告の右上にあるバツ印の大きさは、通常表示時には15x15ピクセルなのだが、HiDPI表示時には、30x30ピクセルの大きさになる。

なので、画像認識で、15x15ピクセルの領域を検出しようとしていると、HiDPI表示時には、そういう領域の検出には失敗する事になるので、HiDPI表示時には、認識方法を変更する必要がある訳だ。

で、古いマシンにインストールされる事が多いUbuntu環境では、今現在は、まだ、あまり使われてはいないとは思うのだが、Ubuntu18.04LTS環境でも、macOSと同様のHiDPI表示は可能だ。

具体的には、標準装備されているディスプレイ設定のサイズ調整として100%と200%の選択が可能になっている。

なので、macOS / Ubuntu環境では、HiDPI表示というのは、200%表示の事になるのだが、Windows環境では、125%だとか150%だとか175%だとかの選択も可能になっているので、更に厄介だ。

ただし、Windows PCでは、Macとは異なり、殆どのノートPCでは、モニター解像度はフルHD止まりになっているのだが、これは、Windows環境でHiDPI表示すると、多くの場合、トラブるからだ。

これは何故なのかというと、Windowsの場合、10年も前に開発されたプログラムがそのまま使われる事も多いのだが、そういったプログラムはHiDPI表示には対応していないからだ。

もっとも、Windows10の最近の大規模アップデートでは、そういった状況を打開すべく、OS側で、HiDPI表示に対応していないプログラムの表示をマトモにしようと努力してきているので、少しはマシな状況になってきているかもしれない。

しかし、Windowsの場合、テキストのレンダリングに問題があるみたいな感じで、HiDPI表示にしてみても、少なくとも作者的な感想としては、HiDPI表示の最大の売りになっている筈の、綺麗なテキスト表示、は、実現されない感じだ。

つまり、Windows環境でのHiDPI表示というのは、液晶解像度がサイズの割に高すぎて、テキストが読めない問題を、テキストのサイズを何とか視認可能なくらいに大きくし、それに付随して、それ以外の画像サイズもその比率で大きくする事で解決する表示方法、みたいな感じになっている訳だ。

なので、そもそも、液晶解像度がサイズの割に高くなりすぎる、という問題の方を解決した方がスマートなので、Macとは違って、殆どのノートPCなんかでは、液晶解像度を無闇に高くしない訳だ。

と、言うことなので、Macでは、HiDPI表示ではない方が例外的になっている昨今でも、Windows PCでは、HiDPI表示が特殊表示扱いのままなので、普通は、開発者的にも、HiDPI対応に対するモチベーションは上がらないのだが、作者的には、MacBook Pro 15インチ 2016モデルにBootCampでWindows10をインストールしてあるので、このWindows10を快適に使う為には、HiDPI対応も必要になる。

もっとも、実際の所としては、MacBook ProのWindows環境は殆ど使っていないし、使う時にも、解像度をフルHDに下げて使う事が殆どなので、HiDPI対応は必須でもないのだが、作者製ソフトでは、HiDPI対応はやってきているので、今回も、何とかする必要はあるかもしれない。

つまり、Windowsについては、HiDPI表示は殆ど普及していない筈な割には、対応しなければならない動作モードは最も多いので、勘弁してくれ、みたいな所はあるのだが、実際の所としては、もっと厄介になるのは、色の問題だ。

具体的には、Chromeにはハードウェア支援機能があるのだが、作者のUbuntu環境では、これをOnにした場合とOffにした場合で、動画広告が再生される時に表示されるシークバーの色が微妙に異なる事になる。

また、macOS環境では、設定するディスプレイのプロファイルによって、キャプチャーされる色が、結構、変わってくるので、今現在、動画広告が表示されている事を認識する為に使っているシークバーの「色」、というのは、一般向けにソフトを公開するのであれば、固定値には出来ない、という事が判明している。

と、言うことなので、大したプログラムではなくても、デスクトップ上に表示される画像を認識するプログラム、というのは、色々な環境に対応させようとすると、結構、大変な事になるかもしれない。

« 需要は無いこともない? | トップページ | もう少し膨らませようかと »

2019年6月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google