(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024034978
(43)【公開日】2024-03-13
(54)【発明の名称】情報処理方法、およびプログラム
(51)【国際特許分類】
G06T 7/11 20170101AFI20240306BHJP
【FI】
G06T7/11
【審査請求】未請求
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2022139592
(22)【出願日】2022-09-01
(71)【出願人】
【識別番号】522039773
【氏名又は名称】株式会社 ラセングル
(74)【代理人】
【識別番号】100153246
【弁理士】
【氏名又は名称】伊吹 欽也
(72)【発明者】
【氏名】石田 臣
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096DA01
5L096FA54
5L096FA64
5L096FA69
5L096GA34
(57)【要約】 (修正有)
【課題】複数のオブジェクトが配置された画像から所望のオブジェクトを所定の領域内に位置するように切り出す際、該所定の領域内に隣のオブジェクトの少なくとも一部が位置しない画像データを生成可能な情報処理方法およびプログラムを提供する。
【解決手段】情報処理方法は、オブジェクト211~214が配置された元画像において、オブジェクト211~214の各々を区分けし、区分けされたオブジェクトの各々に含まれる各ピクセルに対して該当するオブジェクト識別子が付与されたラベリングデータを生成し、区分けされたオブジェクトの各々について、対応するオブジェクトを取り囲むように矩形を設定し、元画像、ラベリングデーおよび矩形501~504により、オブジェクトの各々の画像データを生成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
複数のオブジェクトが配置された第1の画像データにおいて、前記複数のオブジェクトの各々を区分けする工程と、
前記第1の画像データと同一の画像データを元に、前記区分けされたオブジェクトの各々に含まれる各ピクセルに対して該当するオブジェクトを識別するための識別子が付与され、オブジェクトと該当する識別子とが関連付けられた参照データを生成する工程と、
前記第1の画像データまたは前記参照データにおいて、前記区分けされたオブジェクトの各々について、対応するオブジェクトを取り囲むように所定の図形を設定する工程と、
前記第1の画像データ、前記参照データ、および前記所定の図形により、前記オブジェクトの各々の第2の画像データを生成する工程とを有し、
前記第2の画像データを生成する工程では、
前記設定された所定の図形と同一の二次元配列となるピクセル領域を生成し、
前記参照データにおける前記所定の図形に該当する領域において、前記所定の図形に対応するオブジェクトを識別するための識別子が付与されているピクセルを1つずつ探索し、
前記識別子が付与されているピクセルを発見した場合は、前記ピクセル領域において該発見されたピクセルに対応するピクセルを、前記第1の画像データにおける前記発見されたピクセルに対応するピクセルの色で塗る
ことを特徴とする情報処理方法。
【請求項2】
コンピュータに、
複数のオブジェクトが配置された第1の画像データにおいて、前記複数のオブジェクトの各々を区分けする工程と、
前記第1の画像データと同一の画像データを元に、前記区分けされたオブジェクトの各々に含まれる各ピクセルに対して該当するオブジェクトを識別するための識別子が付与され、オブジェクトと該当する識別子とが関連付けられた参照データを生成する工程と、
前記第1の画像データまたは前記参照データにおいて、前記区分けされたオブジェクトの各々について、対応するオブジェクトを取り囲むように所定の図形を設定する工程と、
前記第1の画像データ、前記参照データ、および前記所定の図形により、前記オブジェクトの各々の第2の画像データを生成する工程とを有する情報処理方法を実行させるプログラムであって、
前記第2の画像データを生成する工程では、
前記設定された所定の図形と同一の二次元配列となるピクセル領域を生成し、
前記参照データにおける前記所定の図形に該当する領域において、前記所定の図形に対応するオブジェクトを識別するための識別子が付与されているピクセルを1つずつ探索し、
前記識別子が付与されているピクセルを発見した場合は、前記ピクセル領域において該発見されたピクセルに対応するピクセルを、前記第1の画像データにおける前記発見されたピクセルに対応するピクセルの色で塗るプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、複数のオブジェクトが配置された元画像から所定のオブジェクトを切り出す簡便な方法として(画面の一部(所望のオブジェクト)を画像としてコピーする等)、ユーザにより上記元画像にて所定の形状(例えば、矩形や楕円)で切り出す範囲を指定し、該所定の形状領域をコピーするなどして上記所定のオブジェクトの切り出し画像を生成する方法がある(非特許文献1参照)。
【0003】
このような方法においては、切り出す対象となる所望のオブジェクトを、例えば上記所定の形状として矩形により切り出す際は、該所望のオブジェクトを取り囲むように上記矩形領域をユーザが指定し(切り出す範囲を選択し)、該指定した矩形領域(選択範囲)をコピーや切り取ることによって、切り出し画像が取得される。
【先行技術文献】
【特許文献】
【0004】
【非特許文献1】PhotoShopユーザガイド、選択ツールによる選択、インターネット<https://helpx.adobe.com/jp/photoshop/using/selecting-marquee-tools.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記所望のオブジェクトの近くに別のオブジェクトがある場合、これらオブジェクトの位置によっては上記矩形領域内に該別のオブジェクトの一部が含まれてしまうことがある。すなわち、選択範囲である矩形領域内に所望のオブジェクトのみが存在して欲しいところ、不要なもの(本明細書では、“不要ピクセル群”とも呼ぶ)も存在してしまうのである。
【0006】
このように不要ピクセル群ができてしまった場合は、ユーザによる画像処理によって該不要ピクセル群を除去したり、見えなくなるようにすることによって、所望のオブジェクトのみが表示される画像データを生成することができる。このような画像処理としては、例えば、所謂消しゴムツール(指定した領域のピクセルを背景色または透過色に変更するツール)により不要ピクセル群を消去する処理が行われるが、ユーザによる所定の動作(消しゴムツールの起動、消去範囲の指定、実際の消去操作等)が必要となる。あるいは、背景色の図形を用意し、該図形を不要ピクセル群に重畳させることにより見えないようにすることもある。
【0007】
このような不要ピクセル群を消去したり、見えなくなるような処理によって、複数のオブジェクトが含まれる元画像より所望のオブジェクトのみを切り出し、該所望のオブジェクトのみが表示されるような画像データを生成することができる。しかしながら、選択範囲である矩形領域内に所望のオブジェクトと不要ピクセル群がある場合、どちらが所望のオブジェクトかはユーザによって判断する必要があり、上述のような不要ピクセル群を消去する処理はユーザが行うことになる。すなわち、ユーザの手間の増加に加え、消去範囲の指定や消去操作が上手くいかないと不要ピクセル群の一部が残ってしまう事態を招きかねない。
【0008】
本発明は、このような課題に鑑みてなされたものであって、その目的とするところは、複数のオブジェクトが配置された画像から所望のオブジェクトを所定の領域内に位置するように切り出す際、該所定の領域内に隣のオブジェクトの少なくとも一部が位置しない画像データを生成可能な情報処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【0009】
このような目的を達成するために、本発明の第一の態様は、情報処理方法であって、複数のオブジェクトが配置された第1の画像データにおいて、前記複数のオブジェクトの各々を区分けする工程と、前記第1の画像データと同一の画像データを元に、前記区分けされたオブジェクトの各々に含まれる各ピクセルに対して該当するオブジェクトを識別するための識別子が付与され、オブジェクトと該当する識別子とが関連付けられた参照データを生成する工程と、前記第1の画像データまたは前記参照データにおいて、前記区分けされたオブジェクトの各々について、対応するオブジェクトを取り囲むように所定の図形を設定する工程と、前記第1の画像データ、前記参照データ、および前記所定の図形により、前記オブジェクトの各々の第2の画像データを生成する工程とを有し、前記第2の画像データを生成する工程では、前記設定された所定の図形と同一の二次元配列となるピクセル領域を生成し、前記参照データにおける前記所定の図形に該当する領域において、前記所定の図形に対応するオブジェクトを識別するための識別子が付与されているピクセルを1つずつ探索し、前記識別子が付与されているピクセルを発見した場合は、前記ピクセル領域において該発見されたピクセルに対応するピクセルを、前記第1の画像データにおける前記発見されたピクセルに対応するピクセルの色で塗ることを特徴とする。
【0010】
本発明の第2の態様は、コンピュータに、複数のオブジェクトが配置された第1の画像データにおいて、前記複数のオブジェクトの各々を区分けする工程と、前記第1の画像データと同一の画像データを元に、前記区分けされたオブジェクトの各々に含まれる各ピクセルに対して該当するオブジェクトを識別するための識別子が付与され、オブジェクトと該当する識別子とが関連付けられた参照データを生成する工程と、前記第1の画像データまたは前記参照データにおいて、前記区分けされたオブジェクトの各々について、対応するオブジェクトを取り囲むように所定の図形を設定する工程と、前記第1の画像データ、前記参照データ、および前記所定の図形により、前記オブジェクトの各々の第2の画像データを生成する工程とを有する情報処理方法を実行させるプログラムであって、前記第2の画像データを生成する工程では、前記設定された所定の図形と同一の二次元配列となるピクセル領域を生成し、前記参照データにおける前記所定の図形に該当する領域において、前記所定の図形に対応するオブジェクトを識別するための識別子が付与されているピクセルを1つずつ探索し、前記識別子が付与されているピクセルを発見した場合は、前記ピクセル領域において該発見されたピクセルに対応するピクセルを、前記第1の画像データにおける前記発見されたピクセルに対応するピクセルの色で塗る。
【発明の効果】
【0011】
本発明によれば、複数のオブジェクトが配置された画像から所望のオブジェクトを所定の領域内に位置するように切り出す際、該所定の領域内に隣のオブジェクトの少なくとも一部が位置しない画像データを生成可能である。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係る情報処理装置の概略構成を示す図である。
【
図2】本発明の一実施形態に係る元画像を説明するための図である。
【
図3】本発明の一実施形態に係る複数のオブジェクトが配置された元画像から所望のオブジェクトを切り出す処理手順を示すフローチャートである。
【
図4】本発明の一実施形態に係る区分けされた各オブジェクトのピクセルに識別子が付すことを説明するための図である。
【
図5】本発明の一実施形態に係る区分けされた各オブジェクトの各々に矩形を設定することを説明するための図である。
【
図6】本発明の一実施形態に係る区分けされた各オブジェクトの画像データを生成することを説明するための図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の実施の形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【0014】
本発明の一実施形態では、複数のオブジェクトを含む元画像から所望のオブジェクトを抽出して、不要ピクセル群を含まない、該所望のオブジェクトの画像データ(所望オブジェクト画像データ)を生成するものである。本明細書では、“元画像(データ)”とは、1枚の画像中に複数のオブジェクトが配置された画像(データ)であって、背景(各オブジェクトが位置する領域以外の領域)が透過色または特定の色(例えば、白色等、すなわち、特定のRGB値)に設定されている画像である。なお、後述するように本発明の一実施形態では、透過色または所定の色を境界とみなすことによって、オブジェクトの区分けを行っているので、背景は透過色であることがより好ましい。
【0015】
(第1の実施形態)
図1は、本実施形態に係る情報処理装置100の概略構成を示す図である。
情報処理装置100は、CPU(Central Processing Unit)101、GPU(Graphics Processing Unit)102、ストレージ103、メモリ104、出力インタフェース(I/F)105、リーダ106、リーダインタフェース(I/F)107、入力インタフェース(I/F)108、通信モジュール109を備えている。情報処理装置100には、出力I/F105を介して表示部110が接続され、また入力I/F108を介して入力部111が接続される。
【0016】
CPU101は、種々の演算、制御、判別などの処理動作を実行するものであり、例えばストレージ103から所定のプログラムをメモリ104にロードし、該プログラムに含まれる一連の命令を実行することによって、様々な処理を実行するよう機能する。GPU102は、画像処理を行うためのプロセッサであって、CPU101からの所定の命令に応じて画像を描画し、表示部110に画像を表示させる。
【0017】
ストレージ103は、CPU101が読み出して実行するためのプログラム(例えば、
図3に示すプログラム等)及び各種のデータが格納されている。メモリ104は、データ及びプログラムを一時的に保持する。メモリ104は、揮発性メモリであり、CPU101やGPU102の処理動作中のデータや入力データ、さらにはリーダ106にて読み取られたデータ(画像等)を一時的に格納するものであって、例えばRAM(Random Access Memory)である。
【0018】
出力I/F105は、CPU101やGPU102の指令に従って、ディスプレイといった表示部110に映像を表示する。リーダ106は、情報処理装置100に設けられ、各種データ、プログラム等が格納されたメモリカードやDVD(Digital Versatile Disc)といった外部記憶媒体を装着可能に構成され、該装着された外部記憶媒体から所定のデータを読み取る。リーダI/F107は、CPU101からの指令に応じて、リーダ106に装着された外部記憶媒体からのデータの読み取りを行う。入力I/F108は、キーボード等の入力部111を介して使用者が操作することによって入力された操作に関する入力信号を受付ける。通信モジュール109は、通信回路網に接続されて、通信回路網に接続されている他のコンピュータと通信する。この通信は有線であっても無線であってもよい。通信モジュール109を介して上記元画像等、所定のデータを取得しても良い。
【0019】
図2は、本実施形態に係る元画像を説明するための図である。
図2において、元画像201は、幅(ピクセル座標x軸)Mピクセル(Mは自然数)、高さ(ピクセル座標y軸)Nピクセル(Nは自然数)の画像(Mpx×Npx)であり、各ピクセル201は対応する色が設定されている。すなわち、ピクセル201の各々は、対応する色情報を有している。また、元画像200には、複数のオブジェクト211~214が配置されており、元画像200におけるオブジェクト211~214以外の領域である背景215は白地であり、背景205を構成する各ピクセル201のアルファ値はゼロに設定されている。また、各オブジェクト211~214を構成する各ピクセルは、対応する色情報を有している。
【0020】
図3は、本実施形態に係る複数のオブジェクト201~204が配置された元画像200から所望のオブジェクトを切り出す処理手順を示すフローチャートである。元画像200は、情報処理装置100にて作成されたり、リーダ106を介した外部記憶媒体や通信モジュール109を介して取得でき、適宜ストレージ103やメモリ104に格納されている。
【0021】
ステップS31では、CPU101は、ストレージ103やメモリ104に格納されている元画像200を取得する。
【0022】
ステップS32では、CPU101は、ステップS31にて取得された元画像200に対してそこに含まれるオブジェクト211~214の各々を区分けする。本実施形態では、CPU101は、元画像200について、透過色を境界とみなし、それぞれを別個のピクセルグループに切り分けることによりオブジェクト211~214の各々を区分けする。なお、本実施形態では、上記透過色を境界とみなしているが、特定のRGB値を境界とみなしても良い。本実施形態では、「アルファ値がゼロ」=透過色という設定にしており、元画像200において透過色(白地(背景))では無い1つの連続した領域を検出することにより、各部位テクスチャを区分けする。なお、任意値のRGB値を指定する場合は、該指定したRGB値が完全一致したピクセルを透過色として扱うようにすれば良い。
【0023】
ステップS33では、CPU101は、区分けされたオブジェクト211~214の各々に対してラベリングをし、ラベリングされたオブジェクト211~214の各々を構成する各ピクセルに対して、ラベリングされたオブジェクトに含まれるピクセルであることを識別できるように、該当する識別子(オブジェクト識別子)を付すことにより、各オブジェクトと該当するオブジェクト識別子とが関連付けられたラベリングデータを生成する。例えば、区分けされたオブジェクト211に対して「1」、オブジェクト212に対して「2」、オブジェクト213に対して「3」、オブジェクト214に対して「4」とラベリングされたとする。この場合
図4に示すように、CPU101は、オブジェクト211を構成する全てのピクセルにオブジェクト識別子として「1」を付与する。同様に、CPU101は、オブジェクト212を構成する全てのピクセルにオブジェクト識別子として「2」を、オブジェクト213を構成する全てのピクセルにオブジェクト識別子として「3」を、オブジェクト214を構成する全てのピクセルにオブジェクト識別子として「4」をそれぞれ付する。すなわち、CPU101は、各オブジェクト211~214の各々のピクセルと該当するオブジェクトを識別するためのオブジェクト識別子とを関連付ける。
【0024】
このようなオブジェクト識別子の関連付けとして、本実施形態では、各オブジェクトと該当するオブジェクト識別子とが関連付けられたラベリングデータ400を生成する。ラベリングデータ400は、元画像200を元に生成されるものであり、オブジェクト211~214の各々が配置されている。すなわち、CPU101は、元画像200と同一の二次元配列領域(Mpx×Npx)をメモリ104上に作成し、該領域において、オブジェクト211に該当するピクセルには「1」を、オブジェクト212に該当するピクセルには「2」を、オブジェクト213に該当するピクセルには「3」を、オブジェクト214に該当するピクセルには「4」を付したデータであるラベリングデータ400を生成するのである。該ラベリングデータ400は後述のように、画像データ生成対象となるオブジェクトのオブジェクト識別子の探索で参照されるので、ラベリングデータ400は「参照データ」という側面もある。
【0025】
ステップS34では、CPU101は、元画像200において、ステップS32にて区分けされたオブジェクト211~214の各々を、その内側に含むように仮想の矩形(元画像200のピクセル座標系のX軸と平行な辺(横の辺)と該ピクセル座標系のY軸と平行な辺(縦の辺)とを有する四角形)を設定する。本実施形態では、該設定される矩形により元画像200より各オブジェクトが切り出される形となるので、該矩形は、元画像200から抜き出された対象となるオブジェクトの再現領域(生成される画像データの外枠)とも言えるであろう。
【0026】
さてより詳細には、
図5に示すように、CPU101は、オブジェクト211に対して、自身の領域内にオブジェクト211が位置するように矩形501を設定し、オブジェクト212に対して、自身の領域内にオブジェクト212が位置するように矩形502を設定し、オブジェクト213に対して、自身の領域内にオブジェクト213が位置するように矩形503を設定し、オブジェクト214に対して、自身の領域内にオブジェクト214が位置するように矩形504を設定する。さらに、CPU101は、各矩形501~504について、それぞれの矩形を特定するための矩形情報(ピクセル座標系における矩形の左上頂点の座標(左上ピクセル501の座標値)、矩形の横の長さ(ピクセル座標x軸に沿ったピクセル数)、矩形の縦の長さ(ピクセル座標y軸に沿ったピクセル数))を取得し、それら矩形情報をステップS33にて各オブジェクトに付与されたラベリングと関連付けて保存する。すなわち、CPU101は、矩形501について取得された矩形情報に対してオブジェクト211に付された識別子「1」を関連付ける。他の矩形情報に対しても同様に該当する識別子を関連付ける。なお、矩形501のように、部位テクスチャの形状によっては、それを取り囲む4角が直角の四角形としては正方形になることもある。よって、本発明では、矩形には、正方形も含むこととする。
【0027】
さらに詳細に説明すると、CPU101は、各オブジェクトに対して、元画像200におけるピクセル座標(XY座標系)を取得し、該ピクセル座標から各々の矩形を設定する。例えば、矩形501の生成については、CPU101は、識別子「1」を参照してオブジェクト211を構成する全てのピクセル(「1」でラベリングされている)を走査し、オブジェクト211におけるピクセルX座標の最大値X
Maxおよび最小値X
Min、ならびにオブジェクト211におけるピクセルY座標の最大値Y
Maxおよび最小値Y
Minを取得する。これにより、CPU101は、ピクセル座標系における矩形501の左上ピクセル501aの座標値(最小値X
Min、最小値Y
Min)、および右下ピクセル501bの座標値(最大値X
Max、最大値Y
Max)を取得することができ、これら座標に基づいて矩形501を設定する。さらに、CPU101は、
矩形の横辺の長さ = 最大値X
Max-最小値X
Min+1
矩形の縦辺の長さ = 最大値Y
Max-最小値Y
Min+1
を各々計算することによって、矩形501の横辺の長さ、および縦辺の長さを計算する。
図5においては、
左上ピクセル501aのピクセル座標値(最小値X
Min、最小値Y
Min)=(0,0)
右下ピクセル501bのピクセル座標値(最大値X
Max、最大値Y
Max)=(2,2)
であるので、矩形の横辺の長さが「3」となり、矩形501の横辺は3ピクセルと計算される。また、矩形の縦辺の長さも「3」となり、矩形501の縦辺の長さも3ピクセルと計算される。このようにして、CPU101は、矩形501の矩形情報(左上ピクセル501aの座標値、横辺の長さ、縦辺の長さ)を取得する。CPU101は、これら処理と同様にして、矩形502~504の各々を設定し、それらに対応する矩形情報を取得する。
【0028】
ステップS35では、元画像200、ステップS33にて生成されたラベリングデータ、およびステップS34にて取得された矩形501~504の矩形情報に基づいて、オブジェクト211~214毎の画像データをそれぞれ生成する。以下、
図6を用いて、より詳細に説明する。
【0029】
図6は、本実施形態に係る区分けされたオブジェクトの1つについて画像データを生成することを説明するための図であって、オブジェクト214に関する画像データの生成を説明するための図である。
ステップS61にて、CPU101は、オブジェクト214に関する画像データを生成する場合は、矩形504の矩形情報に基づいて、矩形504と同一の二次元配列(ピクセル領域)をメモリ104に生成する。上述のように矩形情報には該当する矩形の横辺の長さ(該当矩形の、ピクセル座標系のX軸に沿ったピクセル数)と縦辺の長さ((該当矩形の、ピクセル座標系のY軸に沿ったピクセル数)とを有しているので、矩形504の矩形情報は、
図5を参照して〔左上座標の座標値、横辺の長さ、縦辺の長さ〕=〔(5、2)、3ピクセル、6ピクセル〕となる。よって、CPU101は、
図6に示すように、該矩形504の矩形情報に基づいて、ピクセル座標系において横3ピクセル、縦6ピクセルのピクセル領域600であって、該ピクセル領域600の全てのピクセルが透過色となるようにメモリ104上に展開する。すなわち、この時点では、ピクセル領域600には、オブジェクト214を構成する色は塗られていない。なお、ピクセル領域600のピクセル座標としては、該ピクセル領域600のピクセル601aのピクセル座標値が(0,0)となり、該ピクセル座標値(0,0)が元画像200における矩形504の左上ピクセルのピクセル座標値(5、2)に対応している。逆に言うと、CPU101は、元画像200における矩形504の左上ピクセルがピクセル601aと対応するように、ピクセル領域600を生成する。
【0030】
ステップS62では、CPU101は、ラベリングデータ400を参照して、ラベリングデータ400中の矩形504に該当する領域604において、画像データの生成対象であるオブジェクト214に該当するオブジェクト識別子「4」が付されたピクセルを所定の順番で探索する。すなわち、CPU101は、矩形504の矩形情報に基づいてラベリングデータ400において矩形504に該当する領域604を特定し、該特定された領域604において所定のピクセルから1つずつ、オブジェクト識別子「4」が付されているか否かの探索を実行する。本実施形態では、
図6の左下図において、CPU101は、矩形504の左上ピクセル601bから順に同一ピクセルY座標についてピクセルX座標軸に沿って各ピクセルを走査し、矩形504のあるピクセルY座標におけるピクセルX座標を全て走査したら、次のピクセルY座標に進むようにして、上記探索を実行する。領域604におけるピクセル601bに付されたオブジェクト識別子は「2」であるので、CPU101は、ピクセル領域600においてピクセル601bに対応するピクセル601aは、オブジェクト214に対応するピクセルではないと判断し、該ピクセル601aの色はそのまま透過色と決定し、着色しない。
【0031】
次いで、CPU101は、ラベリングデータ400においてピクセル601bの右隣り(ピクセルX座標軸に沿った次のピクセル)であるピクセル602bに付されたオブジェクト識別子を確認する。ピクセル602bは元画像200では背景に該当し、オブジェクト識別子は付されていない。よって、CPU101は、ピクセル領域600においてピクセル602bに対応するピクセル602aも、オブジェクト214に対応するピクセルではないと判断し、該ピクセル602aの色はそのまま透過色と決定し、着色しない。
【0032】
次いで、CPU101は、ラベリングデータ400においてピクセル602bの右隣りであるピクセル603bに付されたオブジェクト識別子を確認する。ピクセル603bに付されたオブジェクト識別子は「4」であるので、CPU101は、ラベリングデータ400における矩形504に該当する領域604においてオブジェクト識別子「4」が付されたピクセルを発見する(特定する)。オブジェクト識別子「4」は、元画像200において画像データ生成の対象であるオブジェクト214を構成するピクセルに付される識別子であるので、CPU101は、ピクセル領域600においてピクセル603bに対応するピクセル603aは、オブジェクト214に対応するピクセルであると判断する。該判断がなされると、CPU101は、ステップS63に進む。一方、領域604におけるオブジェクト識別子「4」が付与されたピクセルが発見されない場合は、発見するまでステップS62を繰り返し、上記探索を続ける。
【0033】
ステップS63では、CPU101は、ステップS62にて領域604におけるピクセル1つずつの探索によりオブジェクト識別子「4」が付されたピクセルを特定した場合、ピクセル領域600の、ラベリングデータ400において該オブジェクト識別子「4」が付されたピクセルに対応するピクセルを、上記オブジェクト識別子「4」が付されたピクセルに対応する元画像200のピクセルで出力される色で塗る。例えば、CPU101は、ステップS63にてオブジェクト214に対応するピクセルと判断されたピクセル603aに対してオブジェクト214における該当ピクセルと同じ色で塗る。
図6の右下図に示すように、ラベリングデータ400においてオブジェクト214を識別するためのオブジェクト識別子「4」が付されたピクセルの探索結果であるピクセル603bに対応する、元画像200におけるピクセルは、ピクセル603cである。該ピクセル603cは、オブジェクト214の一部であって、該一部を表現する色情報を有している。CPU101は、ピクセル603cが有する色情報に従ってピクセル603aにて出力する色(RGBの輝度値)を決定し、該決定された色にてピクセル603aを塗る(表示する)。すなわち、CPU101は、ピクセル603aにて表示される色(RGBの輝度値)を、ピクセル603cの色(RGBの輝度値)とする。
【0034】
このように、CPU101は、ラベリングデータ400中の矩形504に該当する領域604においてオブジェクト識別子「4」が付されたピクセルを1つずつ探索することにより、上記領域604における画像データの生成対象であるオブジェクト214に該当するピクセルを1つずつ抽出する。その結果、CPU101は、ピクセル領域600における、オブジェクト識別子「4」が付されたピクセルに対応するピクセル(ピクセル603a等)については、元画像200における該当するピクセルの色が再現されるように色情報を決定し、決定された色にて1ピクセルずつ塗っていく。一方、CPU101は、ピクセル領域600における、オブジェクト識別子「4」以外の識別子が付されたピクセルに対応するピクセル(ピクセル601a等)やオブジェクト識別子が付されていないピクセルに対応するピクセル(ピクセル602a等)については、オブジェクト214に対応するピクセルでは無いと判断し、ステップS61にて設定された色である透過色のままとする。
【0035】
現在の画像データ生成対象であるオブジェクト214を取り囲む矩形504に該当する領域604を構成するピクセルの全てのピクセルの探索が終了するまで、ステップS62およびS63を繰り返す。領域604の全てのピクセルに対してステップS62、S63が終了すると、ステップS61にて生成されたピクセル領域内に生成対象となるオブジェクトが形成された画像データが生成される。
図6の例においては、CPU101は、オブジェクト214と同一の形状および色にて再現されたオブジェクト605がピクセル領域600内に形成された画像データ606を生成する。
【0036】
上述では、オブジェクト214の画像データを生成する例を示したが、CPU101は、ステップS35において、オブジェクト211~213の各々についても、
図6に示す方法にてそれぞれ画像データを生成する。オブジェクト211~214に対する
図6に示す処理は、各オブジェクトを同時に行っても良いし、1つずつ行っても良い。1つずつ行う場合は、例えばCPU101は、上記ラベリングの序数の小さい方から順に行うなど、所定の基準に従って処理するオブジェクトの順番を決めて実行すれば良い。
【0037】
このようにして、CPU101は、オブジェクト211~214の各々についてそれぞれ画像データを生成する。CPU101は、このように生成された各々の画像データを所定のファイル形式にて保存しても良い。あるいは、CPU101は、生成された各々の画像データを表示部110に表示しても良い。このとき、入力部111を介して所定のファイル形式にて保存する画像データをユーザに選択させても良い。
【0038】
本実施形態によれば、例えば、対象となるオブジェクトが
図6のようにオブジェクト214の場合、該オブジェクト214の画像データを生成する際、ラベリングデータ400における、オブジェクト214に対応する矩形504に該当する領域604において、対象となるオブジェクト214を識別するためのオブジェクト識別子「4」が付されたピクセルを1つずつ探索する。そして、該ピクセルを特定した場合は、元画像200における、特定されたピクセル(オブジェクト識別子「4」が付されたピクセル)と同一のピクセル座標のピクセルの色にて、ピクセル領域600において上記特定されたピクセルに対応するピクセルを塗るようにしている。従って、後に画像データとなるピクセル領域600において、欲しいもの(すなわち、オブジェクト214に該当するピクセル)以外は色が再現されず、結果的にそれらが除去された形で画像データを生成することができる。すなわち、画像データの再現領域でもある矩形内に対象のオブジェクト以外のものとなる不要ピクセル群(例えば、隣りのオブジェクトの少なくとも一部)が存在しても、必要な識別子以外が付されたピクセルの色は再現されないので、不要ピクセル群が存在しない、対象となるオブジェクトのみが存在する画像データを生成することができる。よって、上述のように1つの矩形内に複数のピクセル群(所望のオブジェクトと不要ピクセル群)が存在する場合、従来では、人の判断によりどちらのピクセル群が必要かを決定することになるが、本実施形態によれば、そのような人の判断が無くても、不要のピクセル群ではなく所望のピクセル群のみが含まれる画像データを生成することができる。
【0039】
また、本実施形態によれば、上記探索によりピクセル領域600に対して1ピクセルずつ色を塗っていくようにしているので、描画の方式を簡便にでき、不要ピクセル群を除去するためのマスク描画メソッドが無い環境(言語やライブラリ等)でも本実施形態に係る方法を実装することができる。
【0040】
なお、本実施形態では、ステップS34にて、各オブジェクト211~214を取り囲むものとして矩形501~504を設定しているが、円や楕円、三角形や五角形等の多角形、星型等、他の図形であっても良い。本実施形態で重要なことは、オブジェクト211~214の各々を、その内側に位置するようにオブジェクトを取り囲むことによって、該オブジェクトの画像データの生成時の再現領域を形成しつつ、識別子の探索時に活用することであり、少なくとも所望のオブジェクトを取り囲むことができれば、その形状は問題ではないのである。
【0041】
また、本実施形態において、ステップS34において矩形の設定を元画像200において実行しているが、上述と同様にしてラベリングデータ400において実行しても良い。
【0042】
(第2の実施形態)
第1の実施形態では、元画像200のオブジェクト以外の領域である背景を透過色または特定の色(白等)としているが、本発明は、背景部分が透過色や所定の色のものでない場合にも適用することができる。こういった例としては、
図2に示す元画像200において、背景215が透過色ではなく、前景としてのオブジェクト211~214(所望のオブジェクト)以外のオブジェクトや景色等の場合である。
【0043】
例えば、複数人の人物が居る部屋の中で撮影された写真画像から人物の各々の画像データを生成する場合、所望のオブジェクトが人(前景)であり、写真画像において人以外が背景となる。こういった場合であっても、背景を除去し、該背景領域を透過色または所定の色に設定することにより、
図2に示す元画像200(例えば、背景215が透過色に設定されている状態)を生成すれば良いのである。この場合、ステップS31において、上記写真画像に対して、典型的な背景除去処理により前景を残して背景を除去し、背景領域を透過色に設定すれば良い。典型的な背景除去処理としては、例えば、二値化による除去、輪郭抽出および前景選択による除去、背景差分による除去といった画像処理系のものであったり、機械学習を用いたものを用いればよい。
【0044】
本発明で重要なことの1つは、元画像において、所望のオブジェクト以外の領域である背景が透過色、または所定の色であることであり、元々背景を透過色や所定の色で生成する場合であっても、元々は背景にも別のオブジェクトが存在する等、透過色や所定の色ではない場合であっても良いのである。後者の場合は、例えば、ステップS31にて、上記背景除去処理を行い、元画像200のように背景215を透過色または所定の色に設定すればよいのである。
【0045】
(その他の実施形態)
上述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラム(例えば、
図3に示す処理を行うプログラム)を記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性メモリカード、ROM等を用いることができる。また上述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し上述の実施形態の動作を実行するものも上述した実施形態の範疇に含まれる。
【符号の説明】
【0046】
100 情報処理装置
101 CPU
103 ストレージ
104 メモリ
200 元画像
211~214 オブジェクト
215 背景
400 ラベリングデータ
501~504 矩形
600 ピクセル領域
601a、601b、602a、602b、603a、603b、603c ピクセル
604 矩形504に該当する領域
605 オブジェクト
606 画像データ