(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024098613
(43)【公開日】2024-07-24
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
G09G 5/00 20060101AFI20240717BHJP
G09G 5/37 20060101ALI20240717BHJP
G09G 5/373 20060101ALI20240717BHJP
G06F 3/0484 20220101ALI20240717BHJP
G06F 3/14 20060101ALI20240717BHJP
G06T 7/00 20170101ALI20240717BHJP
【FI】
G09G5/00 510V
G09G5/00 550C
G09G5/37 310
G09G5/373
G06F3/0484
G06F3/14 350A
G06T7/00 300F
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023002204
(22)【出願日】2023-01-11
(71)【出願人】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】中西 貴洋
【テーマコード(参考)】
5B069
5C182
5E555
5L096
【Fターム(参考)】
5B069AA02
5B069CA03
5B069JA08
5B069KA02
5B069KA04
5C182AA02
5C182AA03
5C182AB02
5C182AB08
5C182AC03
5C182AC38
5C182BA01
5C182BA03
5C182BA04
5C182BA06
5C182BA14
5C182BA68
5C182BB01
5C182BB26
5C182BB27
5C182BC26
5C182CB12
5C182CB33
5C182CB34
5C182CB42
5C182DA44
5E555AA04
5E555AA63
5E555AA76
5E555BA03
5E555BA06
5E555BB03
5E555BB06
5E555BC13
5E555CA42
5E555CB21
5E555CB48
5E555DA06
5E555DB53
5E555DB56
5E555DC24
5E555DC25
5E555DD06
5E555DD11
5E555EA09
5E555EA11
5E555FA00
5L096AA06
5L096CA02
5L096DA02
5L096FA69
5L096HA08
5L096JA11
(57)【要約】
【課題】表示装置の設定を容易にすることができる。
【解決手段】情報処理装置10は、表示装置1a,1bそれぞれに、自身の識別情報3aを含む第1画像3を表示させる。情報処理装置10は、第1画像3を表示した表示装置1a,1bを撮像した第1カメラ画像4を取得する。情報処理装置10は、第1カメラ画像4から識別情報3aを検出する。情報処理装置10は、表示装置1a,1bそれぞれに表示させる表示領域6a,6bのコンピュータ処理上の座標系6における位置関係を、第1カメラ画像4における識別情報3aの位置関係に基づいて決定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数の表示装置と、
前記複数の表示装置それぞれに、自身の識別情報を含む第1画像を表示させ、前記第1画像を表示した前記複数の表示装置を撮像した第1カメラ画像を取得し、前記第1カメラ画像から前記識別情報を検出し、前記複数の表示装置それぞれに表示させる表示領域のコンピュータ処理上の座標系における位置関係を、前記第1カメラ画像における前記識別情報の位置関係に基づいて決定する情報処理装置と、
を有する情報処理システム。
【請求項2】
前記情報処理装置は、前記複数の表示装置それぞれに、第1マークを含む前記第1画像を表示させ、前記第1カメラ画像から前記第1マークを検出し、前記第1カメラ画像における前記第1マークの回転に基づいて、検出した前記第1マークに対応する識別情報で示される表示装置に、前記表示領域を回転して表示させる設定をする、
請求項1記載の情報処理システム。
【請求項3】
前記情報処理装置は、前記複数の表示装置それぞれに、画面の角を示す第1マークを含む前記第1画像を表示させ、前記第1カメラ画像から前記第1マークを検出し、第1識別情報に対応する前記第1マークの前記第1カメラ画像における位置と、第2識別情報に対応する前記第1マークの前記第1カメラ画像における位置とに基づいて、前記第1識別情報で示される表示装置に表示させる前記表示領域と、前記第2識別情報で示される表示装置に表示させる前記表示領域との前記座標系における位置関係を決定する、
請求項1記載の情報処理システム。
【請求項4】
前記情報処理装置は、前記複数の表示装置それぞれに、第2マークを含む第2画像を表示させ、前記第2画像を表示した前記複数の表示装置を撮像した第2カメラ画像を取得し、前記第2カメラ画像から複数の前記第2マークを検出し、前記第2カメラ画像における複数の前記第2マークそれぞれの大きさの比較結果に基づいて、前記複数の表示装置それぞれが前記表示領域を表示させる際の解像度を設定する、
請求項1記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システムに関する。
【背景技術】
【0002】
コンピュータに複数の表示装置を接続することがある。複数の表示装置それぞれに表示される表示領域のコンピュータ処理上の位置関係を設定して表示画面を拡張することで、ユーザは複数の表示装置を連続した画面のように扱うことができる。
【0003】
複数の表示装置の設定に関する技術としては、例えば、複数のディスプレイに接続して利用する場合に、各ディスプレイのレイアウトを容易に認識させ、正しい表示を行わせるためのセッティングを容易に行うことができる情報処理装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の表示装置を用いて画面表示を拡張する場合、コンピュータ処理上の位置関係の設定は、表示装置の実際の位置関係に対応していることが好ましい。多くの表示装置を用いて画面表示を拡張している場合、複数の表示装置それぞれについて、実際の位置関係に沿うように手動で設定変更をすると手間がかかる。
【0006】
1つの側面では、本件は、表示装置の設定を容易にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、複数の表示装置と、情報処理装置とを有する情報処理システムが提供される。情報処理装置は、複数の表示装置それぞれに、自身の識別情報を含む第1画像を表示させ、第1画像を表示した複数の表示装置を撮像した第1カメラ画像を取得し、第1カメラ画像から識別情報を検出し、複数の表示装置それぞれに表示させる表示領域のコンピュータ処理上の座標系における位置関係を、第1カメラ画像における識別情報の位置関係に基づいて決定する。
【発明の効果】
【0008】
1態様によれば、表示装置の設定を容易にすることができる。
【図面の簡単な説明】
【0009】
【
図1】第1の実施の形態に係る情報処理システムの一例を示す図である。
【
図2】第2の実施の形態に係る情報処理システムの一例を示す図である。
【
図3】PCのハードウェアの一構成例を示す図である。
【
図4】コンピュータ処理上の座標系における表示領域の一例を示す図である。
【
図6】カメラ画像に写る枠の検出の一例を示す図である。
【
図7】プロットデータの解析の一例を示す図(その1)である。
【
図8】プロットデータの解析の一例を示す図(その2)である。
【
図9】プロットデータの解析の一例を示す図(その3)である。
【
図11】表示領域設定処理の手順の一例を示すフローチャート(その1)である。
【
図12】表示領域設定処理の手順の一例を示すフローチャート(その2)である。
【
図13】表示領域設定処理の手順の一例を示すフローチャート(その3)である。
【
図14】表示領域設定処理の手順の一例を示すフローチャート(その4)である。
【
図15】解像度調整処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず、第1の実施の形態について説明する。
【0011】
図1は、第1の実施の形態に係る情報処理システムの一例を示す図である。第1の実施の形態は、表示装置1a,1bの設定をするものである。第1の実施の形態の情報処理システムは、表示装置1a,1bおよび情報処理装置10を有する。表示装置1a,1bは、情報処理装置10から出力された画像を表示する表示装置である。情報処理装置10は、表示装置1a,1bに表示をさせるコンピュータである。なお、情報処理装置10は、ノートPC(Personal Computer)であってもよく、表示装置1aまたは表示装置1bは、ノートPCである情報処理装置10の内蔵モニタであってもよい。
【0012】
情報処理装置10は、表示領域6aを表示装置1aに表示させ、表示領域6bを表示装置1bに表示させる。表示領域6a,6bは、コンピュータ処理上の座標系6内の領域である。座標系6では、表示データが表示領域内にある場合、表示装置の対応する位置に当該表示データが表示される。例えば、座標系6において、表示領域6aにあるカーソルを表示領域6bに移動するコンピュータ処理が実行された場合、当該カーソルの表示は、表示装置1aの画面上から表示装置1bの画面上に移動する。
【0013】
情報処理装置10は、処理部11を有する。処理部11は、情報処理装置10を制御し、所要の処理を実行可能である。処理部11は、例えば、情報処理装置10が有するプロセッサまたは演算回路である。処理部11は、以下のようにして、表示装置1a,1bを用いて画面を拡張表示する際の設定をする。
【0014】
まず、処理部11は、表示装置1a,1bそれぞれに、第1画像3を表示させる。第1画像3は、識別情報3aおよび第1マーク3bを含む。識別情報3aは、第1画像3を表示する表示装置自身の識別情報である。識別情報3aは、例えば、第1画像3を表示する表示装置の名称を示すQR(Quick Response)コード(登録商標)である。第1マーク3bは、画面の角を示すマークである。第1マーク3bは、例えば、第1画像3の四隅に配置されるL字型の枠である。
【0015】
次に、処理部11は、第1画像3を表示した表示装置1a,1bを撮像した第1カメラ画像4を取得する。例えば、第1カメラ画像4は、カメラ2によって第1画像3を表示した表示装置1a,1bを正面から撮像した画像である。処理部11は、第1画像3を撮像後、情報処理装置10に接続されたカメラ2から、第1カメラ画像4を取得する。なお、カメラ2は、スマートフォンやタブレット端末に内蔵されたカメラであってもよい。
【0016】
処理部11は、取得した第1カメラ画像4を解析する。処理部11は、第1カメラ画像4から識別情報3aを検出する。例えば、処理部11は、第1カメラ画像4に写るQRコードを検出する。処理部11は、検出した各QRコードをデコードし、表示装置1a,1bのいずれの表示装置を示す識別情報3aであるかを特定する。また、処理部11は、第1カメラ画像4から第1マーク3bを検出する。例えば、処理部11は、第1カメラ画像4に写るL字型の枠を検出する。
【0017】
ここで、処理部11は、第1識別情報に対応する第1マーク3bの第1カメラ画像4における位置と、第2識別情報に対応する第1マーク3bの第1カメラ画像4における位置との位置関係をプロットデータ5にプロットする。例えば、処理部11は、第1カメラ画像4から表示装置1aを示す識別情報3aを検出すると、検出した識別情報3aの周囲から検出された第1マーク3bを、表示装置1aを示す識別情報3aに対応する第1マーク3bとして検出する。また、処理部11は、第1カメラ画像4から表示装置1bを示す識別情報3aを検出すると、検出した識別情報3aの周囲から検出された第1マーク3bを、表示装置1bを示す識別情報3aに対応する第1マーク3bとして検出する。
【0018】
そして、処理部11は、表示装置1aを示す識別情報3aに対応する第1マーク3bの第1カメラ画像4における位置を示す点(表示装置1aの点)を、プロットデータ5にプロットする。なお、表示装置1aの点は、図の白い点である。また、処理部11は、表示装置1bを示す識別情報3aに対応する第1マーク3bの第1カメラ画像4における位置を示す点(表示装置1bの点)を、プロットデータ5にプロットする。なお、表示装置1bの点は、図の黒い点である。
【0019】
処理部11は、表示装置1a,1bそれぞれに表示させる表示領域6a,6bの座標系6における位置関係を、第1カメラ画像4における識別情報3aの位置関係に基づいて決定する。例えば、処理部11は、プロットデータ5に基づいて、第1識別情報で示される表示装置に表示させる表示領域と、第2識別情報で示される表示装置に表示させる表示領域との座標系6における位置関係を決定する。
【0020】
処理部11は、プロットデータ5において、上側2つの表示装置1aの点を通る水平な直線が、上側2つの表示装置1bの点を通るため、座標系6において表示領域6a,6bの上辺を揃えて配置するよう決定する。また、処理部11は、プロットデータ5において、右側2つの表示装置1aの点が、左側2つの表示装置1bの点と隣接するため、座標系6において表示領域6bを表示領域6aの右側に配置するよう決定する。
【0021】
第1の実施の形態によれば、情報処理装置10は、表示装置1a,1bそれぞれに、自身の識別情報3aを含む第1画像3を表示させ、第1画像3を表示した表示装置1a,1bを撮像した第1カメラ画像4を取得する。情報処理装置10は、第1カメラ画像4から識別情報3aを検出し、表示装置1a,1bそれぞれに表示させる表示領域6a,6bのコンピュータ処理上の座標系6における位置関係を、第1カメラ画像4における識別情報3aの位置関係に基づいて決定する。
【0022】
これにより、第1の実施の形態の情報処理システムは、表示装置1a,1bを撮像するだけで、表示領域6a,6bの位置関係を、表示装置1a,1bの物理的な位置関係に沿うように自動で設定することができる。よって、第1の実施の形態の情報処理システムは、表示装置の設定を容易にすることができる。
【0023】
また、情報処理装置10は、表示装置1a,1bそれぞれに、画面の角を示す第1マーク3bを含む第1画像3を表示させ、第1カメラ画像4から第1マーク3bを検出する。情報処理装置10は、第1識別情報に対応する第1マーク3bの第1カメラ画像4における位置と、第2識別情報に対応する第1マーク3bの第1カメラ画像4における位置とに基づいて、第1識別情報で示される表示装置に表示させる表示領域と、第2識別情報で示される表示装置に表示させる表示領域との座標系6における位置関係を決定する。これにより、第1の実施の形態の情報処理システムは、表示装置の位置関係を表示領域の位置関係に精度良く反映できる。
【0024】
なお、情報処理装置10は、表示装置1a,1bそれぞれに、第1マーク3bを含む第1画像3を表示させ、第1カメラ画像4から第1マーク3bを検出し、第1カメラ画像4における第1マーク3bの回転に基づいて、検出した第1マーク3bに対応する識別情報3aで示される表示装置に、表示領域を回転して表示させる設定をしてもよい。これにより、第1の実施の形態の情報処理システムは、回転して配置された表示装置についても、適切に表示領域の設定をすることができる。
【0025】
情報処理装置10は、表示装置1a,1bそれぞれに、第2マークを含む第2画像を表示させ、第2画像を表示した表示装置1a,1bを撮像した第2カメラ画像を取得してもよい。そして、情報処理装置10は、第2カメラ画像から複数の第2マークを検出し、第2カメラ画像における複数の第2マークそれぞれの大きさの比較結果に基づいて、表示装置1a,1bそれぞれが表示領域6a,6bを表示させる際の解像度を設定してもよい。これにより、第1の実施の形態の情報処理システムは、表示装置を見るユーザとの距離が他の表示装置と異なる位置に配置された表示装置について適切に設定をすることができる。
【0026】
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。第2の実施の形態は、マルチモニタの設定をするものである。
【0027】
図2は、第2の実施の形態に係る情報処理システムの一例を示す図である。第2の実施の形態の情報処理システムは、PC100、モニタ200a,200bおよびスマートフォン300を有する。PC100は、内蔵モニタに画像を表示するノートPCである。PC100は、モニタ200a,200bに接続されている。モニタ200a,200bは、接続先のコンピュータから取得した画像を表示する。スマートフォン300は、PC100およびモニタ200a,200bを設置するユーザが操作するカメラ付きのスマートフォンである。
【0028】
PC100は、PC100の内蔵モニタおよびモニタ200a,200bをマルチモニタとして使用する。例えば、PC100は、PC100の内蔵モニタおよびモニタ200a,200bを見たときに図形が表示されて見えるように、PC100の内蔵モニタおよびモニタ200a,200bそれぞれに当該図形の一部を表示させる。
【0029】
PC100は、PC100およびモニタ200a,200bの設置時に、PC100の内蔵モニタおよびモニタ200a,200bをマルチモニタとして使用する設定をする。まず、PC100は、PC100の内蔵モニタおよびモニタ200a,200bそれぞれに、自身の名称を示すモニタ検出用QRコードと、画面の角を示す枠を含むモニタ検出用画像を表示させる。ユーザは、スマートフォン300を用いて、モニタ検出用画像を表示させたPC100およびモニタ200a,200bを正面から撮像する。
【0030】
PC100は、スマートフォン300が撮像したカメラ画像を取得し、カメラ画像を解析する。そして、PC100は、カメラ画像におけるモニタ検出用QRコードおよび枠の検出位置に基づいて、PC100の内蔵モニタおよびモニタ200a,200bに表示させる表示領域のコンピュータ処理上の座標系における位置関係を決定する。
【0031】
図3は、PCのハードウェアの一構成例を示す図である。PC100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス111を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現してもよい。
【0032】
また、プロセッサ101は、GPU(Graphics Processing Unit)101aを含む。GPU101aは、プロセッサ101に内蔵されたGPUである。GPU101aは、モニタに表示させる画像を生成し、生成した画像をモニタの画面に表示させる。なお、PC100は、GPU101aに代えてバス111に接続されたGPUを有していてもよい。
【0033】
メモリ102は、PC100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)等の揮発性の半導体記憶装置が使用される。
【0034】
バス111に接続されている周辺機器としては、ストレージ装置103、内蔵モニタ104、接続インタフェース105,109、入力インタフェース106、光学ドライブ装置107、機器接続インタフェース108およびネットワークインタフェース110がある。
【0035】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0036】
内蔵モニタ104は、GPU101aによって生成された画像をパネルに表示する。内蔵モニタ104のパネルとしては、有機EL(Electro Luminescence)や液晶を用いたパネルがある。
【0037】
接続インタフェース105は、PC100にモニタ200a,200bを接続するためのインタフェースである。接続インタフェース105が用いる規格としては、例えば、HDMI(High Definition Multimedia Interface:登録商標)、DP(Display Port:登録商標)、USB(Universal Serial Bus) Type-c等がある。モニタ200a,200bは、GPU101aによって生成された画像を画面に表示させる。モニタ200a,200bとしては、有機ELを用いた表示装置や液晶表示装置等がある。
【0038】
入力インタフェース106には、キーボード31とマウス32とが接続されている。入力インタフェース106は、キーボード31やマウス32から送られてくる信号をプロセッサ101に送信する。なお、マウス32は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【0039】
光学ドライブ装置107は、レーザ光等を利用して、光ディスク33に記録されたデータの読み取りを行う。光ディスク33は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク33には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等がある。
【0040】
機器接続インタフェース108は、PC100に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース108には、メモリ装置34やメモリリーダライタ35を接続することができる。メモリ装置34は、機器接続インタフェース108との通信機能を搭載した記録媒体である。メモリリーダライタ35は、メモリカード36へのデータの書き込み、またはメモリカード36からのデータの読み出しを行う装置である。メモリカード36は、カード型の記録媒体である。
【0041】
接続インタフェース109は、PC100にスマートフォン300を接続するためのインタフェースである。接続インタフェース109は、スマートフォン300とデータの送受信をする。接続インタフェース109が用いる規格としては、例えば、USB等がある。なお、PC100とスマートフォン300とは、ネットワーク30を介して接続されていてもよい。
【0042】
ネットワークインタフェース110は、ネットワーク30に接続されている。ネットワークインタフェース110は、ネットワーク30を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0043】
PC100は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、
図2に示したPC100と同様のハードウェアにより実現することができる。また、プロセッサ101は、第1の実施の形態に示した処理部11の一例である。
【0044】
PC100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。PC100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、PC100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またPC100に実行させるプログラムを、光ディスク33、メモリ装置34、メモリカード36等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。次に、コンピュータ処理上の座標系におけるモニタの表示領域について説明する。
【0045】
図4は、コンピュータ処理上の座標系における表示領域の一例を示す図である。座標系40は、モニタへの表示処理における表示内容を管理する座標系である。座標系40のx軸は、右方向が正の方向である。また、座標系40のy軸は、下方向が正の方向である。以下では、プライマリモニタ(1番目のモニタ)とセカンダリモニタ(2番目のモニタ)に表示処理が行われる場合について説明する。
【0046】
座標系40には、表示領域41,42が設定されている。表示領域41は、プライマリモニタに表示される表示データが配置される表示領域である。表示領域41は、左上の頂点の座標が座標系40における原点(0,0)となるように、プライマリモニタの解像度に応じた大きさの長方形で設定される。例えば、プライマリモニタが横1920px、縦1080pxの解像度である場合、表示領域41は、左上の頂点の座標が原点(0,0)である、横の長さが1920、縦の長さが1080の長方形で設定される。
【0047】
座標系40において表示データが表示領域41内に配置されている場合、表示領域41における当該表示データの位置に対応する、プライマリモニタの画面上の位置に当該表示データが表示される。例えば、座標系40において(50,50)に配置された表示データは、プライマリモニタの画面上の(50,50)の位置に表示される。
【0048】
表示領域42は、セカンダリモニタに表示される表示データが配置される表示領域である。表示領域42は、表示領域41に隣接して設定される。ここでは、表示領域41の右上の頂点と表示領域42の左上の頂点とが一致しているものとする。つまり、表示領域42は、左上の頂点の座標が座標系40における(1920,0)となるように、セカンダリモニタの解像度に応じた大きさの長方形で設定される。例えば、セカンダリモニタが横3440px、縦1440pxの解像度である場合、表示領域42は、左上の頂点の座標が(1920,0)である、横の長さが3440、縦の長さが1440の長方形で設定される。
【0049】
座標系40において表示データが表示領域42内に配置されている場合、表示領域42における当該表示データの位置に対応する、セカンダリモニタの画面上の位置に当該表示データが表示される。例えば、座標系40において(2000,50)に配置された表示データは、セカンダリモニタの画面上の(80,50)の位置に表示される。なお、表示領域をある角度だけ回転して表示させる設定がされたモニタに表示させる表示領域は、座標系40において当該角度だけ回転して設定される。
【0050】
このように、モニタごとの表示領域が設定されることで、複数のモニタによって表示画面が拡張される。ここで、各表示領域の位置関係と、モニタの物理的な位置関係とが一致していない場合、コンピュータ処理上の座標系における表示データの移動と、モニタの表示画面における表示データの移動とが異なってしまうことがある。また、各表示領域の位置関係と、モニタの物理的な位置関係とが一致していない場合、表示領域をまたいでコンピュータ処理上の座標系に配置された表示データが、モニタの表示画面においてずれて表示されてしまうことがある。よって、各表示領域のコンピュータ処理上の座標系における位置関係は、対応するモニタの物理的な位置関係と一致するよう設定されることが好ましい。
【0051】
そこで、第2の実施の形態では、PC100は、モニタ検出用画像を表示させた内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像から、モニタ検出用QRコードおよび枠を検出する。そして、PC100は、内蔵モニタ104およびモニタ200a,200bそれぞれに対応するモニタ検出用QRコードおよび枠の位置関係に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれに表示させる表示領域の位置関係を決定する。次に、PC100の機能について詳細に説明する。
【0052】
図5は、PCの機能例を示すブロック図である。PC100は、モニタ制御部120、画像認識部130および解析部140を有する。モニタ制御部120、画像認識部130および解析部140は、メモリ102に記憶されたプログラムをプロセッサ101が実行することで実現される。
【0053】
モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bの制御をする。内蔵モニタ104およびモニタ200a,200bそれぞれの表示領域を決定する表示領域決定処理では、モニタ制御部120は、表示するモニタ自身のモニタ検出用QRコードと、画面の角を示す枠とを含むモニタ検出用画像を表示させる。例えば、モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれの名称を含むQRコードを生成する。モニタ制御部120は、モニタ検出用QRコードと、左上が白で描画され右上、右下、左下が黒で描画される四隅の枠とを含む、モニタ検出用画像を生成し、内蔵モニタ104およびモニタ200a,200bそれぞれに表示させる。
【0054】
なお、モニタ検出用QRコードは、第1の実施の形態に示した識別情報3aの一例である。モニタ検出用画像は、第1の実施の形態に示した第1画像3の一例である。また、枠は、第1の実施の形態に示した第1マーク3bの一例である。モニタ制御部120は、画像認識部130および解析部140が決定したモニタの設定を適用させる。
【0055】
内蔵モニタ104およびモニタ200a,200bそれぞれの解像度を調整する解像度調整処理では、モニタ制御部120は、一定画素数だけ離れて配置された2つの四角形の組を含む解像度調整用画像を生成する。そして、モニタ制御部120は、解像度調整用画像を内蔵モニタ104およびモニタ200a,200bそれぞれに表示させる。なお、四角形の組は、第1の実施の形態に示した第2マークの一例である。モニタ制御部120は、解析部140が解像度を調整すると決定したモニタの解像度を調整する。
【0056】
画像認識部130は、スマートフォン300からカメラ画像を読み込み、読み込んだカメラ画像から図形を検出する。表示領域決定処理では、画像認識部130は、解像度調整用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像からモニタ検出用QRコードと枠とを検出する。
【0057】
画像認識部130は、検出したモニタ検出用QRコードそれぞれをデコードし、モニタ検出用QRコードが示すモニタの名称を特定する。画像認識部130は、モニタ検出用QRコードの周囲に配置された枠を、モニタ検出用QRコードに対応する枠として検出する。画像認識部130は、枠が回転している場合、対応するモニタ検出用QRコードに名称が示されるモニタについて、枠の回転だけ回転して表示させる決定をする。解像度調整処理では、画像認識部130は、解像度調整用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像から四角形の組を検出する。
【0058】
解析部140は、画像認識部130が読み込んだカメラ画像を解析する。表示領域決定処理では、解析部140は、画像認識部130が検出したモニタ検出用QRコードおよび枠の検出位置に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれの座標系40における表示領域を決定する。解像度調整処理では、解析部140は、カメラ画像上の四角形の組の間隔をそれぞれ特定する。四角形の組の間隔は、第1の実施の形態に示した第2マークの大きさの一例である。解析部140は、四角形の組の間隔それぞれの比較結果に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれについて解像度を調整するか否かを決定する。
【0059】
なお、
図5に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。次に、カメラ画像の解析について説明する。
【0060】
図6は、カメラ画像に写る枠の検出の一例を示す図である。PC100は、モニタ検出用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれの表示領域の座標系40における位置関係を決定する。まず、モニタ制御部120が生成するモニタ検出用画像について説明する。
【0061】
モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれのモニタ検出用QRコードを生成する。例えば、モニタ制御部120は、内蔵モニタ104の名称と、プライマリモニタであることを示す情報とを含むQRコードを、内蔵モニタ104のモニタ検出用QRコードとして生成する。また、モニタ制御部120は、モニタ200aの名称とプライマリモニタではないことを示す情報とを含むQRコードを、モニタ200aのモニタ検出用QRコードとして生成する。また、モニタ制御部120は、モニタ200bの名称とプライマリモニタではないことを示す情報とを含むQRコードを、モニタ200bのモニタ検出用QRコードとして生成する。
【0062】
モニタ制御部120は、モニタ検出用QRコードと四隅のL字型の枠とを含む、モニタ検出用画像を生成する。モニタ検出用画像に含まれる枠のうち、左上の枠は、白で描画され、右上、右下、左下の枠は、黒で描画される。なお、モニタ検出用画像に含まれる枠は、画像の回転が識別可能となるように描画されればよく、右上、右下、左下のいずれかの枠の色が他の枠の色と異なっていてもよい。
【0063】
例えば、モニタ制御部120は、内蔵モニタ104のモニタ検出用QRコードを中央に配置し、内蔵モニタ104の解像度の画面の四隅に表示されるように枠を配置した、内蔵モニタ104のモニタ検出用画像を生成する。また、モニタ制御部120は、モニタ200aのモニタ検出用QRコードを中央に配置し、モニタ200aの解像度の画面の四隅に表示されるように枠を配置した、モニタ200aのモニタ検出用画像を生成する。また、モニタ制御部120は、モニタ200bのモニタ検出用QRコードを中央に配置し、モニタ200bの解像度の画面の四隅に表示されるように枠を配置した、モニタ200bのモニタ検出用画像を生成する。
【0064】
そして、モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれにモニタ検出用画像を表示させる。その後、スマートフォン300は、ユーザの操作に従って、内蔵モニタ104およびモニタ200a,200bを撮像する。
【0065】
カメラ画像60は、モニタ検出用画像を表示させた内蔵モニタ104およびモニタ200a,200bを撮像した画像である。画像認識部130は、カメラ画像60をスマートフォン300から取得する。画像認識部130は、カメラ画像60からQRコードおよび枠を検出する。画像認識部130は、検出したQRコードをデコードし、当該QRコードが示すモニタの名称を特定する。画像認識部130は、当該QRコードの周囲から検出されたL字型の図形を、特定した名称のモニタに対応する枠と特定する。
【0066】
なお、画像認識部130は、あるモニタに対応する枠について、カメラ画像60において白の枠が左上以外から検出された場合、当該モニタについて、枠が回転した分だけ表示領域を回転させて表示させる決定をする。例えば、画像認識部130は、モニタ200bに対応する枠のうち、白の枠が右上から検出された場合、モニタ200bに、表示領域を右に90°回転させて表示させる決定をする。
【0067】
画像認識部130は、カメラ画像60から検出した枠それぞれの検出位置を、プロットデータ70にプロットする。プロットデータ70には、検出点71a,71b,71c,71d,72a,72b,72c,72d,73a,73b,73c,73dがプロットされている。検出点71a~71dは、カメラ画像60から検出された内蔵モニタ104に対応する枠の検出位置を示す。また、検出点72a~72dは、カメラ画像60から検出されたモニタ200aに対応する枠の検出位置を示す。また、検出点73a~73dは、カメラ画像60から検出されたモニタ200bに対応する枠の検出位置を示す。
【0068】
なお、
図6では、カメラ画像60における各モニタに対応する枠のうち、左上から検出された枠の位置を示す検出点(検出点71a,72a,73a)は、白の点で示し、左上以外から検出された枠の位置を示す検出点は、黒の点で示す。次に、プロットデータ70を用いた解析について説明する。
【0069】
図7は、プロットデータの解析の一例を示す図(その1)である。解析部140は、プロットデータ70における内蔵モニタ104およびモニタ200a,200bそれぞれの検出点の位置関係に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれの座標系40における表示領域の位置関係を決定する。
【0070】
解析部140は、プロットデータ70において2以上の検出点を通って垂直方向に延びる直線(つまり、x=定数の直線)を算出する。なお、解析部140は、水平方向のずれが所定値未満の検出点同士を同じ直線上にあるものとする。ここで、解析部140は、内蔵モニタ104に対応する右側の検出点71c,71dおよびモニタ200aに対応する右側の検出点72c,72dを通る直線を算出する。すると、解析部140は、座標系40において、内蔵モニタ104の表示領域の右側と、モニタ200aの表示領域の右側とを揃えて配置すると決定する。
【0071】
図8は、プロットデータの解析の一例を示す図(その2)である。解析部140は、プロットデータ70において2以上の検出点を通って水平方向に延びる直線(つまり、y=定数の直線)を算出する。なお、解析部140は、垂直方向のずれが所定値未満の検出点同士を同じ直線上にあるものとする。
【0072】
ここで、右側を揃えて表示領域を配置すると判定した、内蔵モニタ104およびモニタ200aについて、内蔵モニタ104に対応する上側の検出点71a,71dを通る直線と、モニタ200aに対応する下側の検出点72b,72cを通る直線とが隣接している。解析部140は、座標系40において、内蔵モニタ104の表示領域の上側と、モニタ200aの表示領域の下側とを隣接させて配置すると決定する。
【0073】
また、解析部140は、モニタ200aに対応する上側の検出点72a,72dおよびモニタ200bに対応する上側の検出点73a,73dを通る直線を算出する。すると、解析部140は、座標系40において、モニタ200aの表示領域の上側と、モニタ200bの表示領域の上側とを揃えて配置すると決定する。ここで、
図7において、モニタ200aに対応する右側の検出点72c,72dを通る直線と、モニタ200bに対応する左側の検出点73a,73bを通る直線とが隣接している。解析部140は、座標系40において、モニタ200aの表示領域の右側と、モニタ200bの表示領域の左側とを隣接させて配置すると決定する。
【0074】
このようにして、解析部140は、座標系40における内蔵モニタ104およびモニタ200a,200bそれぞれの表示領域の位置関係を特定する。以下では、特定した位置関係とモニタの解像度を用いた表示領域の決定方法の一例について説明する。なお、以下の例では、内蔵モニタ104は、横1920px、縦1080pxの解像度であり、モニタ200a,200bは、横2560px、縦1440pxの解像度であるものとする。
【0075】
解析部140は、プライマリモニタである内蔵モニタ104の表示領域の左上の座標(Px,Py)を、座標系40における(0,0)に決定する。解析部140は、特定した内蔵モニタ104の表示領域とモニタ200aの表示領域との位置関係に基づいて、モニタ200aの表示領域の左上の座標(Sx,Sy)を算出する。解析部140は、内蔵モニタ104の表示領域の右側と、モニタ200aの表示領域の右側とを揃えて配置するため、Sx=-|2560-1920|=-640と算出する。また、解析部140は、内蔵モニタ104の表示領域の上側と、モニタ200aの表示領域の下側とを隣接させて配置するため、Sy=-1440と算出する。
【0076】
また、解析部140は、特定したモニタ200aの表示領域とモニタ200bの表示領域との位置関係に基づいて、モニタ200bの表示領域の左上の座標(Tx,Ty)を算出する。解析部140は、モニタ200aの表示領域の上側と、モニタ200bの表示領域の上側とを揃えて配置するため、Ty=Sy=-1440と算出する。また、解析部140は、モニタ200aの表示領域の右側と、モニタ200bの表示領域の左側とを隣接させて配置するため、Tx=1920と算出する。
【0077】
よって、解析部140は、内蔵モニタ104の表示領域を座標系40において、左上の頂点の座標が原点(0,0)である、横の長さが1920、縦の長さが1080の長方形と決定する。また、解析部140は、モニタ200aの表示領域を座標系40において、左上の頂点の座標が(-640,-1440)である、横の長さが2560、縦の長さが1440の長方形と決定する。
【0078】
また、解析部140は、モニタ200bの表示領域を座標系40において、左上の頂点の座標が(1920,-1440)である長方形と決定する。なお、解析部140は、モニタ200bに表示領域を右に90°回転させて表示させる決定をしているため、モニタ200bの表示領域の範囲を横の長さが1440、縦の長さが2560と決定する。
【0079】
このようにして、解析部140は、各モニタの表示領域の左上の頂点の座標を決定する。そして、モニタ制御部120は、決定された座標とモニタの解像度とをレジストリに格納する。例えば、モニタ制御部120は、座標(-640,-1440)を符号付整数16進数(FFFFFD80,FFFFFA60)に変換し、レジストリに格納する。また、例えば、モニタ制御部120は、座標(1920,-1440)を符号付整数16進数(00000780,FFFFFA60)に変換し、レジストリに格納する。次に、座標を揃える他のモニタが検出されなかった場合の、表示領域の決定方法について説明する。
【0080】
図9は、プロットデータの解析の一例を示す図(その3)である。プロットデータ80は、カメラ画像60とは異なる別のカメラ画像から検出した枠それぞれの検出位置をプロットしたものである。
【0081】
プロットデータ80には、検出点81a,81b,81c,81d,82a,82b,82c,82d,83a,83b,83c,83dがプロットされている。検出点81a~81dは、別のカメラ画像から検出された内蔵モニタ104に対応する枠の検出位置を示す。また、検出点82a~82dは、別のカメラ画像から検出されたモニタ200aに対応する枠の検出位置を示す。また、検出点83a~83dは、別のカメラ画像から検出されたモニタ200bに対応する枠の検出位置を示す。
【0082】
なお、プロットデータ80における検出点81a~81dの位置は、プロットデータ70における検出点71a~71dの位置と同じであるものとする。また、プロットデータ80における検出点82a~82dの位置は、プロットデータ70における検出点72a~72dの位置と同じであるものとする。つまり、解析部140は、内蔵モニタ104の表示領域およびモニタ200aの表示領域を
図6~8の例と同様に特定する。
【0083】
ここで、解析部140は、モニタ200bに対応する検出点83a~83dのうちの2点を通る、水平方向または垂直方向に延びる直線上に、内蔵モニタ104に対応する検出点81a~81dおよびモニタ200aに対応する82a~82dがないことを特定する。すると、解析部140は、検出点83a~83dのうちの2点を通る水平方向または垂直方向に延びる直線と隣接する、2以上の検出点を通る水平方向または垂直方向に延びる直線を探索する。解析部140は、検出点83a,83bを通る直線と、検出点81c,81d,82c,82dを通る直線とが隣接することを特定する。解析部140は、隣接する直線と対応する表示領域を隣接させると決定する。ここでは、解析部140は、座標系40において、内蔵モニタ104およびモニタ200aの表示領域の右側と、モニタ200bの表示領域の左側とを隣接させて配置すると決定する。
【0084】
また、解析部140は、検出点83a,83bを隣接する直線上に転写し、転写した検出点83a,83bと直線上の他の検出点との位置関係に応じて、検出点83a,83bに対応する表示領域の頂点の座標を算出する。ここでは、解析部140は、検出点81c,81d,82c,82dを通る直線に検出点83aを転写後の、検出点82dと検出点83aとの距離と、検出点82cと検出点83aとの距離との比が2:1であると算出する。解析部140は、モニタ200bの表示領域の左上の頂点の座標について、モニタ200aの表示領域の右上の頂点の座標までの距離と、モニタ200aの表示領域の右下の頂点の座標までの距離との比を2:1に決定する。
【0085】
これにより、解析部140は、モニタ200bの表示領域の左上の頂点の座標を(1920,-480)と決定する。よって、解析部140は、モニタ200bの表示領域を座標系40において、左上の頂点の座標が(1920,-1440)である、横の長さが1440、縦の長さが2560の長方形と決定する。次に、解像度調整処理について説明する。
【0086】
図10は、解像度調整処理の一例を示す図である。複数のモニタが画面表示している場合、他のモニタに対して、モニタを見るユーザから遠くにあるモニタに写る画像は、小さく見えてしまうことがある。そこで、PC100は、他のモニタと離れて配置されたモニタの解像度を調整する。以下では、PC100の内蔵モニタ104およびモニタ200aについて解像度調整処理を実行する場合について説明する。
【0087】
まず、モニタ制御部120は、解像度調整用画像を内蔵モニタ104およびモニタ200aそれぞれに表示させる。解像度調整用画像は、一定画素数だけ離れて配置された2つの四角形の組を含む。その後、スマートフォン300は、ユーザの操作に従って、内蔵モニタ104およびモニタ200aを撮像する。
【0088】
画像認識部130は、内蔵モニタ104およびモニタ200aを撮像したカメラ画像90をスマートフォン300から取得する。画像認識部130は、カメラ画像90から内蔵モニタ104およびモニタ200aそれぞれに対応する四角形の組を検出する。例えば、画像認識部130は、カメラ画像90における四角形の組の検出位置に、カメラ画像60において検出位置が最も近いモニタ検出用QRコードが示す名称のモニタを、当該四角形の組に対応付ける。
【0089】
解析部140は、カメラ画像90から検出された四角形の組それぞれについて、カメラ画像90における四角形の間隔を特定する。解析部140は、特定した四角形の間隔それぞれを比較し、間隔が大きく異なる四角形の組がある場合、当該四角形の組に対応するモニタの解像度を調整すると決定する。例えば、解析部140は、内蔵モニタ104に対応する四角形の組についての四角形の間隔に対する、モニタ200aに対応する四角形の組についての四角形の間隔の比率が所定値未満の場合、モニタ200aの解像度を下げると決定する。モニタ制御部120は、モニタ200aの解像度を下げる設定をして画面表示させる。
【0090】
このようにして、PC100は、解像度調整処理を実行する。これにより、PC100は、モニタを見るユーザとの距離が他のモニタと異なる位置に配置されたモニタについて適切に設定をすることができる。以下、PC100が実行する処理の手順について、詳細に説明する。
【0091】
図11は、表示領域設定処理の手順の一例を示すフローチャート(その1)である。以下、
図11に示す処理をステップ番号に沿って説明する。
[ステップS11]モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれのモニタ検出用QRコードを生成する。例えば、モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれの名称と、内蔵モニタ104およびモニタ200a,200bそれぞれがプライマリモニタであるか否かを示す情報とを含むQRコードを生成する。
【0092】
[ステップS12]モニタ制御部120は、モニタ検出用画像を生成する。例えば、モニタ制御部120は、モニタ検出用QRコードと、左上が白で描画され右上、右下、左下が黒で描画される四隅の枠とを含む、モニタ検出用画像を生成する。
【0093】
[ステップS13]モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれに、モニタ検出用画像を表示させる。モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれに、自身のモニタ検出用QRコードを含むモニタ検出用画像を表示させる。
【0094】
[ステップS14]画像認識部130は、カメラ画像を読み込んだか否かを判定する。画像認識部130は、カメラ画像を読み込んだと判定した場合、処理をステップS15に進める。また、画像認識部130は、カメラ画像を読み込んでいないと判定した場合、処理をステップS14に進める。
【0095】
[ステップS15]画像認識部130は、解像度調整処理を実行するか否かを判定する。例えば、画像認識部130は、解像度調整処理を実行する選択を受け付けた場合、解像度調整処理を実行すると判定する。画像認識部130は、解像度調整処理を実行すると判定した場合、処理をステップS16に進める。また、画像認識部130は、解像度調整処理を実行しないと判定した場合、処理をステップS17に進める。
【0096】
[ステップS16]モニタ制御部120、画像認識部130および解析部140は、共同して、解像度調整処理を実行する。設定調整処理の詳細については後述する(
図15参照)。
【0097】
[ステップS17]画像認識部130は、ステップS14で読み込んだカメラ画像のQRコードをデコードする。画像認識部130は、ステップS14で読み込んだカメラ画像に含まれるQRコードを1つ検出する。画像認識部130は、検出したQRコードをデコードし、QRコードが示すモニタの名称と、当該モニタがプライマリモニタであるか否かを特定する。
【0098】
[ステップS18]画像認識部130は、ステップS17でデコードしたQRコードに対応する枠を検出する。例えば、画像認識部130は、ステップS14で読み込んだカメラ画像からL字型の図形を枠として検出する。画像認識部130は、ステップS17でデコードしたQRコードの周囲に配置された枠を、ステップS17でデコードしたQRコードに対応する枠として検出する。
【0099】
[ステップS19]画像認識部130は、ステップS18で検出した枠が左上の枠であるか否かを判定する。画像認識部130は、左上の枠であると判定した場合、処理をステップS21に進める。また、画像認識部130は、左上の枠ではないと判定した場合、処理をステップS20に進める。
【0100】
[ステップS20]画像認識部130は、ステップS18で検出した枠の、ステップS14で読み込んだカメラ画像における位置を示す黒の検出点をプロットデータ70にプロットする。そして、処理がステップS22に進む。
【0101】
[ステップS21]画像認識部130は、ステップS18で検出した枠の、ステップS14で読み込んだカメラ画像における位置を示す白の検出点をプロットデータ70にプロットする。
【0102】
図12は、表示領域設定処理の手順の一例を示すフローチャート(その2)である。以下、
図12に示す処理をステップ番号に沿って説明する。
[ステップS22]画像認識部130は、ステップS17でデコードしたQRコードに対応する4つの枠を処理したか否かを判定する。画像認識部130は、4つの枠を処理したと判定した場合、処理をステップS23に進める。また、画像認識部130は、4つの枠を処理していないと判定した場合、処理をステップS18に進める。
【0103】
[ステップS23]画像認識部130は、ステップS17でデコードしたQRコードに対応する白の枠が右上から検出されたか否かを判定する。画像認識部130は、白の枠が右上から検出されたと判定した場合、処理をステップS24に進める。また、画像認識部130は、白の枠が右上から検出されていないと判定した場合、処理をステップS25に進める。
【0104】
[ステップS24]画像認識部130は、ステップS17でデコードしたQRコードで示される名称のモニタについて、表示領域を右に90°回転させて表示させる決定をする。そして、処理がステップS29に進む。
【0105】
[ステップS25]画像認識部130は、ステップS17でデコードしたQRコードに対応する白の枠が右下から検出されたか否かを判定する。画像認識部130は、白の枠が右下から検出されたと判定した場合、処理をステップS26に進める。また、画像認識部130は、白の枠が右下から検出されていないと判定した場合、処理をステップS27に進める。
【0106】
[ステップS26]画像認識部130は、ステップS17でデコードしたQRコードで示される名称のモニタについて、表示領域を右に180°回転させて表示させる決定をする。そして、処理がステップS29に進む。
【0107】
[ステップS27]画像認識部130は、ステップS17でデコードしたQRコードに対応する白の枠が左下から検出されたか否かを判定する。画像認識部130は、白の枠が左下から検出されたと判定した場合、処理をステップS28に進める。また、画像認識部130は、白の枠が左下から検出されていない(つまり、左上から検出された)と判定した場合、処理をステップS29に進める。
【0108】
[ステップS28]画像認識部130は、ステップS17でデコードしたQRコードで示される名称のモニタについて、表示領域を右に270°回転させて表示させる決定をする。
【0109】
[ステップS29]画像認識部130は、ステップS14で読み込んだカメラ画像の全QRコードをデコードしたか否かを判定する。画像認識部130は、全QRコードをデコードしたと判定した場合、処理をステップS30に進める。また、画像認識部130は、全QRコードをデコードしていないと判定した場合、処理をステップS17に進める。
【0110】
[ステップS30]解析部140は、プライマリモニタの表示領域を座標系40の原点の位置に決定する。例えば、解析部140は、プライマリモニタであるという情報が含まれるQRコードに、名称が含まれるモニタをプライマリモニタとして特定する。そして、解析部140は、プライマリモニタの表示領域の左上の頂点の座標を座標系40における(0,0)に決定する。
【0111】
[ステップS31]解析部140は、プロットデータ70において、プライマリモニタを示す辺を通る線上に検出点があるモニタを1つ特定する。例えば、解析部140は、プロットデータ70において、プライマリモニタに対応する2つの検出点を通る水平方向または垂直方向に延びる直線上に、対応する検出点があるモニタを特定する。
【0112】
[ステップS32]解析部140は、座標系40において、プライマリモニタの表示領域とステップS31で特定したモニタの表示領域とが、ステップS31のモニタの特定で用いた線側で揃えられるよう配置すると決定する。
【0113】
[ステップS33]解析部140は、座標系40において、プライマリモニタの表示領域と、ステップS31で特定したモニタの表示領域とが隣接する辺を決定する。例えば、解析部140は、プロットデータ70において隣接するプライマリモニタの辺とステップS31で特定したモニタの辺とに対応する、表示領域の辺同士を隣接させると決定する。
【0114】
図13は、表示領域設定処理の手順の一例を示すフローチャート(その3)である。以下、
図13に示す処理をステップ番号に沿って説明する。
[ステップS34]解析部140は、ステップS31で特定したモニタの表示領域の座標系40における表示領域を決定する。例えば、解析部140は、ステップS32とステップS33で決定した条件を満たすようステップS31で特定したモニタの表示領域の左上の頂点の座標を決定する。
【0115】
[ステップS35]解析部140は、プロットデータ70において、プライマリモニタを示す辺を通る線上に検出点があるモニタを全て特定したか否かを判定する。解析部140は、モニタを全て特定したと判定した場合、処理をステップS36に進める。また、解析部140は、モニタを全て特定していないと判定した場合、処理をステップS31に進める。
【0116】
[ステップS36]解析部140は、表示領域を決定したモニタを1つ選択する。
[ステップS37]解析部140は、プロットデータ70において、ステップS36で選択したモニタを示す辺を通る線上に検出点があるモニタを1つ特定する。例えば、解析部140は、プロットデータ70において、ステップS36で選択したモニタに対応する2つの検出点を通る水平方向または垂直方向に延びる直線上に、対応する検出点があるモニタを特定する。
【0117】
[ステップS38]解析部140は、座標系40において、ステップS36で選択したモニタの表示領域とステップS37で特定したモニタの表示領域とが、ステップS37のモニタの特定で用いた線側で揃えられるよう配置すると決定する。
【0118】
[ステップS39]解析部140は、座標系40において、ステップS36で選択したモニタの表示領域と、ステップS37で特定したモニタの表示領域とが隣接する辺を決定する。例えば、解析部140は、プロットデータ70において隣接するステップS36で選択したモニタの辺とステップS37で特定したモニタの辺とに対応する、表示領域の辺同士を隣接させると決定する。
【0119】
[ステップS40]解析部140は、ステップS37で特定したモニタの表示領域の座標系40における表示領域を決定する。例えば、解析部140は、ステップS38とステップS39で決定した条件を満たすようステップS37で特定したモニタの表示領域の左上の頂点の座標を決定する。
【0120】
[ステップS41]解析部140は、プロットデータ70において、ステップS36で選択したモニタを示す辺を通る線上に検出点があるモニタを全て特定したか否かを判定する。解析部140は、モニタを全て特定したと判定した場合、処理をステップS42に進める。また、解析部140は、モニタを全て特定していないと判定した場合、処理をステップS37に進める。
【0121】
[ステップS42]解析部140は、表示領域を決定したモニタを全て選択したか否かを判定する。解析部140は、表示領域を決定したモニタを全て選択したと判定した場合、処理をステップS43に進める。また、解析部140は、表示領域を決定したモニタを全て選択していないと判定した場合、処理をステップS36に進める。
【0122】
図14は、表示領域設定処理の手順の一例を示すフローチャート(その4)である。以下、
図14に示す処理をステップ番号に沿って説明する。
[ステップS43]解析部140は、表示領域を決定していないモニタがあるか否かを判定する。解析部140は、表示領域を決定していないモニタがあると判定した場合、処理をステップS44に進める。また、解析部140は、表示領域を決定していないモニタがないと判定した場合、処理をステップS48に進める。
【0123】
[ステップS44]解析部140は、表示領域を決定していないモニタを1つ選択する。
[ステップS45]解析部140は、表示領域を決定済みであり、プロットデータ70においてステップS44で選択したモニタに隣接するモニタの辺上に、ステップS44で選択したモニタに対応する検出点を転写する。
【0124】
[ステップS46]解析部140は、転写した検出点に対応するステップS44で選択したモニタの表示領域の頂点の座標系40における座標を決定する。例えば、解析部140は、検出点を転写した辺上の他の検出点それぞれまでの距離の比率と、辺上の他の検出点それぞれに対応する頂点の座標系40における座標に基づいて、表示領域の頂点の座標系40における座標を決定する。
【0125】
[ステップS47]解析部140は、ステップS44で選択したモニタの表示領域の座標系40における表示領域を決定する。例えば、解析部140は、ステップS46で決定した頂点の座標とステップS44で選択したモニタの解像度に基づいて、ステップS44で選択したモニタの表示領域の左上の頂点の座標を決定する。そして、処理がステップS43に進む。
【0126】
[ステップS48]モニタ制御部120は、各モニタの表示領域を設定する。例えば、モニタ制御部120は、ステップS30,S34,S47で決定された各モニタの表示領域の左上の頂点のx座標およびy座標を符号付整数16進数に変換した値をレジストリに設定する。また、モニタ制御部120は、ステップS24,S26,S28で決定された各モニタの回転をレジストリに設定する。
【0127】
このように、モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれに、自身のモニタ検出用QRコードと枠とを含むモニタ検出用画像を表示させる。画像認識部130は、モニタ検出用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像から、モニタ検出用QRコードと枠とを検出する。そして、解析部140は、モニタ検出用QRコードと枠との検出位置の位置関係に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれの、座標系40における表示領域を決定する。
【0128】
これにより、PC100は、内蔵モニタ104およびモニタ200a,200bを撮像するだけで、内蔵モニタ104およびモニタ200a,200bのマルチモニタとして使用する設定を自動でできるようにする。よって、PC100は、表示装置の設定を容易にすることができる。また、PC100は、画面の角を示す枠の検出位置を用いることで、内蔵モニタ104およびモニタ200a,200bの位置関係を、座標系40における表示領域の位置関係に精度良く反映させることができる。
【0129】
また、画像認識部130は、カメラ画像から検出した枠の回転に基づいて、内蔵モニタ104およびモニタ200a,200bに表示領域を回転して表示させる決定をする。これにより、PC100は、回転して配置されたモニタについても、適切に表示領域の設定をすることができる。
【0130】
図15は、解像度調整処理の手順の一例を示すフローチャートである。以下、
図15に示す処理をステップ番号に沿って説明する。
[ステップS51]モニタ制御部120は、解像度調整用画像を各モニタに表示させる。例えば、モニタ制御部120は、一定画素数だけ離れて配置された2つの四角形の組を含む解像度調整用画像を生成し、生成した解像度調整用画像を内蔵モニタ104およびモニタ200a,200bそれぞれに表示させる。
【0131】
[ステップS52]画像認識部130は、カメラ画像を読み込んだか否かを判定する。画像認識部130は、カメラ画像を読み込んだと判定した場合、処理をステップS53に進める。また、画像認識部130は、カメラ画像を読み込んでいないと判定した場合、処理をステップS52に進める。
【0132】
[ステップS53]解析部140は、ステップS52で読み込んだカメラ画像上の四角形の組の間隔をそれぞれ特定する。例えば、解析部140は、画像認識部130がステップS52で読み込んだカメラ画像から検出した四角形の組の間隔それぞれについて、間隔を算出する。
【0133】
[ステップS54]解析部140は、ステップS53で特定した間隔が大きく異なる四角形の組があるか否かを判定する。例えば、解析部140は、ステップS53で特定した間隔の平均を算出する。そして、解析部140は、算出した平均との間隔の比率が所定の範囲外となる四角形の組がある場合、間隔が大きく異なる四角形の組があると判定する。解析部140は、間隔が大きく異なる四角形の組があると判定した場合、処理をステップS55に進める。また、解析部140は、間隔が大きく異なる四角形の組がないと判定した場合、処理を終了する。
【0134】
[ステップS55]モニタ制御部120は、間隔が大きく異なる四角形の組に対応するモニタの解像度を調整する。例えば、モニタ制御部120は、四角形の組の間隔の平均に対する比率と、解像度の調整量とが対応付けられた学習データを用いて学習した学習済みモデルを用いて決定した調整量だけ、モニタの解像度を増減させる。そして、処理がステップS51に進む。
【0135】
このように、モニタ制御部120は、内蔵モニタ104およびモニタ200a,200bそれぞれに、2つの四角形の組を含む解像度調整用画像を表示させる。解析部140は、解像度調整用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像上の四角形の組の間隔の比較結果に基づいて、内蔵モニタ104およびモニタ200a,200bの解像度を調整する。これにより、PC100は、モニタを見るユーザとの距離が他のモニタと異なる位置に配置されたモニタについて、適切に設定をすることができる。
【0136】
第2の実施の形態によれば、PC100は、内蔵モニタ104およびモニタ200a,200bそれぞれに、自身のモニタ検出用QRコードを含むモニタ検出用画像を表示させ、モニタ検出用画像を表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像を取得する。PC100は、カメラ画像からモニタ検出用QRコードを検出し、内蔵モニタ104およびモニタ200a,200bそれぞれに表示させる表示領域のコンピュータ処理上の座標系40における位置関係を、カメラ画像におけるモニタ検出用QRコードの位置関係に基づいて決定する。これにより、第2の実施の形態の情報処理システムは、表示装置の設定を容易にすることができる。
【0137】
また、PC100は、モニタ検出用QRコードそれぞれに、枠を含むモニタ検出用画像を表示させ、カメラ画像から枠を検出し、カメラ画像における枠の回転に基づいて、検出した枠に対応するモニタ検出用QRコードで示されるモニタに、表示領域を回転して表示させる設定をする。これにより、第2の実施の形態の情報処理システムは、回転して配置されたモニタについても、適切に表示領域の設定をすることができる。
【0138】
また、PC100は、内蔵モニタ104およびモニタ200a,200bそれぞれに、画面の角を示す枠を含むモニタ検出用画像を表示させ、カメラ画像から枠を検出する。PC100は、枠のカメラ画像における位置関係に基づいて、枠に対応する検出用QRコードで示されるモニタに表示させる表示領域の座標系40における位置関係を決定する。これにより、第2の実施の形態の情報処理システムは、内蔵モニタ104およびモニタ200a,200bの位置関係を、座標系40における表示領域の位置関係に精度良く反映できる。
【0139】
また、PC100は、内蔵モニタ104およびモニタ200a,200bそれぞれに、四角形の組を含む解像度調整用画像を表示させ、解像度調整用画像表示した内蔵モニタ104およびモニタ200a,200bを撮像したカメラ画像を取得する。そして、PC100は、カメラ画像から複数の四角形の組を検出し、カメラ画像における複数の四角形の組それぞれの間隔の比較結果に基づいて、内蔵モニタ104およびモニタ200a,200bそれぞれが表示領域を表示させる際の解像度を設定する。これにより、第2の実施の形態の情報処理システムは、モニタを見るユーザとの距離が他のモニタと異なる位置に配置されたモニタについて、適切に設定をすることができる。
【0140】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0141】
1a,1b 表示装置
2 カメラ
3 第1画像
3a 識別情報
3b 第1マーク
4 第1カメラ画像
5 プロットデータ
6 座標系
6a,6b 表示領域