(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】立体データ生成装置、プログラムおよび立体データ生成方法
(51)【国際特許分類】
B29C 64/386 20170101AFI20221220BHJP
B33Y 50/00 20150101ALI20221220BHJP
B33Y 30/00 20150101ALI20221220BHJP
【FI】
B29C64/386
B33Y50/00
B33Y30/00
(21)【出願番号】P 2018182902
(22)【出願日】2018-09-27
【審査請求日】2021-07-12
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】畑中 伸一
【審査官】▲高▼橋 理絵
(56)【参考文献】
【文献】特開2002-092649(JP,A)
【文献】特開2018-058340(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B29C 64/00-64/40
B33Y 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
画面に表示される平面画像において立体形状を生成する対象領域を抽出する対象領域抽出部と、
前記対象領域内の輪郭からの距離と高さとの関係を示す曲線の入力を受け付ける曲線入力受付部と、
前記対象領域内の位置毎に、前記対象領域内の位置から最も近い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から最も遠い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から前記輪郭を形成する全ての点までの距離の平均距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、のいずれかを、ユーザの入力操作に応じて選択して実行し、前記位置毎に求めた高さに基づいて前記対象領域の立体形状を表すデータを生成する立体データ生成部と、を
備えることを特徴とする立体データ生成装置。
【請求項2】
横軸または縦軸の一方を距離を表す軸とし、横軸または縦軸の他方を高さを表す軸とするグラフを前記画面に表示し、
前記グラフの領域内に描かれる線を前記曲線として取得することを特徴とする請求項1に記載の立体データ生成装置。
【請求項3】
前記グラフにおける距離を表す軸の最大値の入力を受け付け、
前記対象領域内において
、選択した距離決定方法で求めた距離が前記最大値を超える位置での高さを、前記曲線上の前記最大値により示される高さに設定することを特徴とする請求項2に記載の立体データ生成装置。
【請求項4】
前記対象領域内の位置毎に、前記輪郭
を形成する複数の点との距離を求め、最も大きい距離を、前記グラフにおける距離を表す軸の最大値に設定することを特徴とする請求項2に記載の立体データ生成装置。
【請求項5】
コンピュータに、
画面に表示される平面画像において立体形状を生成する対象領域を抽出する対象領域抽出処理と、
前記対象領域内の輪郭からの距離と高さとの関係を示す曲線の入力を受け付ける曲線入力受付処理と、
前記対象領域内の位置毎に、前記対象領域内の位置から最も近い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から最も遠い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から前記輪郭を形成する全ての点までの距離の平均距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、のいずれかを、ユーザの入力操作に応じて選択して実行し、前記位置毎に求めた高さに基づいて前記対象領域の立体形状を表すデータを生成する立体データ生成処理と、を
実行させる、ことを特徴とするプログラム。
【請求項6】
画面に表示される平面画像において立体形状を生成する対象領域を抽出する対象領域抽出処理と、
前記対象領域内の輪郭から各位置までの距離と高さとの関係を示す曲線の入力を受け付ける曲線入力受付処理と、
前記対象領域内の位置毎に、前記対象領域内の位置から最も近い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から最も遠い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から前記輪郭を形成する全ての点までの距離の平均距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、のいずれかを、ユーザの入力操作に応じて選択して実行し、前記位置毎に求めた高さに基づいて前記対象領域の立体形状を表すデータを生成する立体データ生成処理と、を
実行する、ことを特徴とする立体データ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、立体データ生成装置、プログラムおよび立体データ生成方法に関する。
【背景技術】
【0002】
従来から、立体物を造形する手法として、インクジェット法、溶融物堆積法、ラピッド・プロトタイピイング法、インクジェットバインダ法、光造形法、及び粉末焼結法などが知られている。このような立体造形手法では、造形対象の立体物の3次元の形状を示す3次元形状情報を用いて、当該立体物を造形することが一般的である。
【0003】
上述した3次元形状情報の作成手法としては、造形対象の立体物の見本となる造形物を測定して作成する方法、造形対象の立体物を示す3次元の画像データから作成する方法があげられる。また、上述した3次元形状情報の作成手法としては、造形対象の立体物を示す2次元の画像データに高さ情報を付与して作成する方法などが挙げられる。
【0004】
例えば、特許文献1には、2次元の画像データにより示される平面形状の内部に1つの頂点と、この頂点の高さとを指定することで、平面形状の周囲部から頂点へ向けて高さが変化する立体形状のデータを生成する方法が開示されている。
【0005】
また、特許文献2には、2次元のカラー画像を色別に分解した各画像において、頂点の位置と高さを指定し、または、頂点の領域と高さを指定し、各色の高さをマージして立体形状のデータを生成する方法が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に開示された技術では、1つの頂点を指定し、周辺部から1つの頂点に向けて高さが変化する錐状(例えば、円錐状)の立体形状しか生成することができないという問題がある。また、特許文献2に開示された技術では、所望の高さを有する立体形状を得るためには、頂点と高さを繰り返し指定しなくてはならないという問題ある。このように、従来では、操作が簡便である場合には、生成可能な立体形状の自由度が低く、生成可能な立体形状の自由度が高い場合には、複雑な操作が必要であった。
【0007】
本発明は、平面画像データに高さ情報を付与して立体画像データを生成する、簡便かつ自由度の高い立体データ生成装置、プログラムおよび立体データ生成方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記技術的課題を解決するため、本発明の一形態の立体データ生成装置は、画面に表示される平面画像において立体形状を生成する対象領域を抽出する対象領域抽出部と、前記対象領域内の輪郭からの距離と高さとの関係を示す曲線の入力を受け付ける曲線入力受付部と、前記対象領域内の位置毎に、前記対象領域内の位置から最も近い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から最も遠い前記輪郭の一点までの距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、前記対象領域内の位置から前記輪郭を形成する全ての点までの距離の平均距離を求め、求めた距離に対応する前記曲線上における高さを求める距離決定方法と、のいずれかを、ユーザの入力操作に応じて選択して実行し、前記位置毎に求めた高さに基づいて前記対象領域の立体形状を表すデータを生成する立体データ生成部と、を備えることを特徴とする。
【発明の効果】
【0009】
平面画像データに高さ情報を付与して立体画像データを生成する、簡便かつ自由度の高い立体データ生成装置、プログラムおよび立体データ生成方法を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、一実施形態に係る立体造形システムの外観図である。
【
図2】
図2は、一実施形態に係る立体造形装置の平面図である。
【
図3】
図3は、一実施形態に係る立体造形装置の側面図である。
【
図4】
図4は、一実施形態に係る立体造形装置の正面図である。
【
図5】
図5は、立体造形装置の制御に関わるハードウェア構成図である。
【
図6】
図6は、一実施形態に係る立体データ生成方法を実現する立体データ生成装置の概要図である。
【
図8】
図8は、
図6の立体データ生成装置の機能構成の一例を示すブロック図である。
【
図9】
図9は、
図6の立体データ生成装置の動作を示すフローチャートである。
【
図10】
図10は、平面画像から立体形状が生成されるまでの例を示す説明図である。
【
図11】
図11は、平面画像から立体形状が生成されるまでの別の例を示す説明図である。
【
図12】
図12は、対象領域の大きさと曲線とに応じて生成される立体形状の一例を示す説明図である。
【
図13】
図13は、対象領域内の任意の一点から輪郭までの距離を示す説明図である。
【
図14】
図14は、対象領域内の各点から輪郭までの距離を算出する方法を示す説明図である。
【
図15】
図15は、別の実施形態における立体データ生成装置の動作を示すフローチャートである。
【
図16】
図16は、上述した実施形態の手法を用いない場合の立体形状のデータ生成方法を示す説明図である。
【発明を実施するための形態】
【0011】
図1から
図5は、本発明の立体データ生成装置、プログラムおよび立体データ生成方法により生成された立体形状を表すデータを用いて立体の造形物を作製する立体造形システムの例が示される。
【0012】
<立体造形システム>
本発明の一実施形態に係る立体造形システムについて図面を用いて説明する。
図1は一実施形態に係る立体造形システムの外観図である。立体造形システム1は、立体造形装置50、及びコンピュータ10を備える。
【0013】
コンピュータ10は、例えば、PC(Personal Computer)、又はタブレット等の汎用の情報処理装置、若しくは立体造形装置50専用の情報処理装置である。コンピュータ10は、立体造形装置50に内蔵されていても良い。コンピュータ10は立体造形装置50とケーブルで接続されても良い。また、コンピュータ10はインターネットやイントラネット等のネットワークを介して立体造形装置と通信するサーバ装置であっても良い。コンピュータ10は、上記の接続又は通信により、再現する造形物のデータを立体造形装置50へ送信する。
【0014】
立体造形装置50は、インクジェット方式の造形装置である。立体造形装置50は、再現する造形物のデータに基づいて造形ステージ595上の媒体Pに液体の造形剤Iを吐出する造形ユニット570を備えている。更に、造形ユニット570は、媒体Pに吐出された造形剤Iに光を照射して硬化して、造形層Lを形成する硬化手段572を有する。更に、立体造形装置50は、造形剤Iを造形層L上に吐出して硬化する処理を繰り返すことで立体の造形物を得る。
【0015】
造形剤Iは、立体造形装置50によって吐出可能であり、かつ形状安定性が得られ、硬化手段572の照射する光によって硬化する材料が用いられる。例えば、硬化手段572がUV(Ultra Violet)照射装置である場合、造形剤IとしてはUV硬化インクが用いられる。
【0016】
媒体Pとしては、吐出された造形剤Iが定着する任意の材料が用いられる。媒体Pは、例えば、記録紙等の紙、キャンバス等の布、或いはシート等のプラスチックである。
【0017】
<立体造形装置>
図2は、一実施形態に係る立体造形装置の平面図である。
図3は、一実施形態に係る立体造形装置の側面図である。
図4は、一実施形態に係る立体造形装置の正面図である。内部構造を表すため、
図2において立体造形装置50の筐体の上面が、
図3において筐体の側面が、
図4において筐体の正面が記載されていない。
【0018】
立体造形装置50の筐体の両側の側面590には、ガイド部材591が保持されている。ガイド部材591には、キャリッジ593が移動可能に保持されている。キャリッジ593は、モータによってプーリ及びベルトを介して
図2,4の矢印X方向(以下、単に「X方向」という。Y、Zについても同様とする。)に往復搬送される。なお、X方向を、主走査方向と表す。
【0019】
キャリッジ593には、造形ユニット570がモータによって
図3,4のZ方向に移動可能に保持されている。造形ユニット570には、6種の造形剤のそれぞれを吐出する6つの液体吐出ヘッド571a、571b、571c、571d、571e、571fがX方向に順に配置されている。以下、液体吐出ヘッドを単に「ヘッド」と表す。また、ヘッド571a、571b、571c、571d、571e、571fのうち任意のヘッドをヘッド571と表す。ヘッド571は6つに限られず、造形剤Iの数に応じて1以上の任意の数、配置される。
【0020】
立体造形装置50には、タンク装着部560が設けられている。タンク装着部560には、第1の造形剤、第2の造形剤、第3の造形剤、第4の造形剤、第5の造形剤、第6の造形剤の各々を収容した複数のタンク561が装着されている。各造形剤は、6つの供給チューブ562を介して各ヘッド571に供給される。各ヘッド571は、ノズル又はノズル列を有しており、タンク561から供給された造形剤を吐出する。一実施形態において、ヘッド571a、571b、571c、571d、571e、571fは、ノズルから、それぞれ第1の造形剤、第2の造形剤、第3の造形剤、第4の造形剤、第5の造形剤、第6の造形剤を吐出する。
【0021】
造形ユニット570における、6つのヘッド571の両側にはそれぞれ硬化手段572が配置されている。硬化手段572は、ヘッド571から媒体Pへ吐出された造形剤を硬化する。硬化手段572としては、造形剤Iを硬化させることが可能であれば特に限定されないが、紫外線(UV)照射ランプ、電子線照射ランプ等のランプが挙げられる。ランプの種類としては、高圧水銀灯、超高圧水銀灯、メタルハライド等が挙げられる。超高圧水銀灯は点光源であるが、光学系と組み合わせて光利用効率を高くしたUVランプは、短波長領域の照射が可能である。メタルハライドは、波長領域が広いため有効である。メタルハライドには、造形剤に含まれる光開始剤の吸収スペクトルに応じてPb、Sn、Feなどの金属のハロゲン化物が用いられる。硬化手段572には、紫外線等の照射により発生するオゾンを除去する機構が具備されていることが好ましい。なお、硬化手段572の数は2つに限られず、例えば、造形ユニット570を往復させて造形するか等に応じて、任意の数設けられる。また、2つの硬化手段572のうち1つだけ稼働させても良い。
【0022】
立体造形装置50においてX方向の一方側には、ヘッド571の維持回復を行うメンテナンス機構580が配置されている。メンテナンス機構580は、キャップ582、及びワイパ583を有する。キャップ582は、ヘッド571のノズル面(ノズルが形成された面)に密着する。この状態で、メンテナンス機構580がノズル内の造形剤Iを吸引することで、ノズルに詰まった高粘度化した造形剤Iが排出される。その後、ノズルのメニスカス形成のため、ノズル面をワイパ583でワイピング(払拭)する。また、メンテナンス機構580は、造形剤Iの吐出が行われない場合に、ヘッド571のノズル面をキャップ582で覆い、造形剤Iが乾燥することを防止する。
【0023】
造形ステージ595は、2つのガイド部材592に移動可能に保持されたスライダ部を有する。これにより、造形ステージ595は、モータによってプーリ及びベルトを介してX方向と直交するY方向(副走査方向)に往復搬送される。
【0024】
<造形液>
本実施形態において、上記の第1の造形剤はキープレートとしてのブラックのUV硬化インク(K)、第2の造形剤はシアンのUV硬化インク(C)、第3の造形剤はマゼンタのUV硬化インク(M)、第4の造形剤はイエローのUV硬化インク(Y)、第5の造形剤はクリアのUV硬化インク(CL)、第6の造形剤はホワイトのUV硬化インク(W)である。なお、造形剤は6つに限られず、画像再現上、必要な色の種類に応じて1以上の任意の数であれば良い。なお、造形剤の数が7以上である場合、立体造形装置50に追加のヘッド571を設けても良く、造形剤の数が5以下である場合、いずれかのヘッド571を稼働させないか、設けなくても良い。
【0025】
<制御部>
次に、
図5を用いて立体造形装置50の制御に関するハードウェア構成について説明する。
図5は立体造形装置50のハードウェア構成図である。
【0026】
立体造形装置50は、立体造形装置50の処理、及び動作を制御するための制御部500を有する。制御部500は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、NVRAM(Non-Volatile Random Access Memory)504、ASIC(Application Specific Integrated Circuit)505、I/F(Interface)506、I/O(Input/Output)507を有する。
【0027】
CPU501は、立体造形装置50の処理、及び動作の全体を制御する。ROM502は、CPU501に立体造形動作を制御するためのプログラム、その他の固定データを格納する。RAM503は、再現する造形物のデータ等を一時格納する。CPU501、ROM502、及びRAM503によって、上記プログラムに従った処理を実行する主制御部500Aが構築される。
【0028】
NVRAM504は、立体造形装置50の電源が遮断されている間もデータを保持する。ASIC505は、造形物のデータに対する各種信号処理等を行う画像処理やその他、立体造形装置50全体を制御するための入出力信号を処理する。
【0029】
I/F506は、外部のコンピュータ10に接続され、コンピュータ10との間でデータ及び信号を送受信する。コンピュータ10から送られてくるデータには、再現する造形物のデータが含まれる。I/F506は外部のコンピュータ10に直接接続されるのでなくインターネットやイントラネット等のネットワークに接続されても良い。
【0030】
I/O507は、各種のセンサ525に接続され、センサ525から検知信号を入力する。
【0031】
また、制御部500には、立体造形装置50に必要な情報の入力及び表示を行うための操作パネル524が接続されている。
【0032】
更に、制御部500は、CPU501又はASIC505の命令によって動作するヘッド駆動部511、モータ駆動部512、及びメンテナンス駆動部513を有する。
【0033】
ヘッド駆動部511は、造形ユニット570のヘッド571へ画像信号と駆動電圧を出力することにより、ヘッド571による造形剤Iの吐出を制御する。この場合、ヘッド駆動部511は、例えば、ヘッド571内で造形剤Iを貯留するサブタンクの負圧を形成する機構、及び押圧を制御する機構へ駆動電圧を出力する。なお、ヘッド571にも、基板が搭載されており、この基板で画像信号等により駆動電圧をマスクすることで駆動信号を生成しても良い。
【0034】
モータ駆動部512は、造形ユニット570のキャリッジ593をX方向(主走査方向)に移動させるX方向走査機構596のモータへ駆動信号を出力することにより、モータを駆動する。また、モータ駆動部512は、造形ステージ595をY方向(副走査方向)に移動させるY方向走査機構597のモータへ駆動電圧を出力することにより、該モータを駆動する。更に、モータ駆動部512は、造形ユニット570をZ方向に移動させるZ方向走査機構598のモータへ駆動電圧を出力することにより、該モータを駆動する。
【0035】
メンテナンス駆動部513は、メンテナンス機構580へ駆動信号を出力することにより、メンテナンス機構580を駆動する。
【0036】
上記各部は、アドレスバスやデータバス等により相互に電気的に接続されている。
<立体データ生成装置>
図6は、一実施形態に係る立体データ生成方法を実現する立体データ生成装置の概要図である。
図6に示す立体データ生成装置100は、例えば、パーソナルコンピュータであり、装置本体120と、液晶ディスプレイ等の表示装置140と、マウス等の入力機器150とを有する。なお、入力機器150は、ペンタブレットと、ペンタブレットを操作するタッチペンとを含む構成でも良く、ペンタブレットと、ペンタブレットを操作するマウスとを含む構成でも良い。
【0037】
また、立体データ生成装置100は、装置本体120と表示装置140とが一体化されたノート型のパーソナルコンピュータでも良く、タブレット端末またはスマートフォンでも良い。ノート型のパーソナルコンピュータの場合、キーボード面に設置された入力パッドを入力機器150として使用可能である。タブレット端末またはスマートフォンの場合、表示画面と一体化されたタッチパネルを入力機器150として使用可能である。さらに、立体データ生成装置100は、
図1に示したコンピュータ10でも良い。
【0038】
例えば、装置本体120は、CPU、ROM、RAM、HDD(Hard Disk Drive)を内蔵しており、CPUがROMまたはRAMに格納された立体データを生成するプログラムを実行することで、
図9以降で説明する処理および動作が実現される。以下では、立体データを生成するプログラムは、立体データ生成プログラムとも称される。特に限定されないが、装置本体120は、DVDドライブ122およびUSB(Universal Serial Bus)ポート124を有し、図示しないインターネット等のネットワークに接続される。
【0039】
CPUにより実行される立体データ生成プログラムにより本発明の立体データ生成方法が実現される場合、立体データ生成プログラムは、DVD、CD-ROM、またはUSBメモリ等の記録媒体に格納される。そして、記録媒体に格納された立体データ生成プログラムは、DVDドライブ122またはUSBポート124を介して、HDDに読み込まれる。なお、立体データ生成プログラムは、インターネット等のネットワークを介して装置本体120に読み込まれても良い。
【0040】
CPUは、平面画像から立体形状を生成するユーザが、図示しないキーボードやマウス等の入力機器150を操作して立体データ生成プログラムの起動を指示したことに基づいて、立体データ生成プログラムの実行を開始する。そして、CPUは、立体データの生成用のウィンドウWを表示装置140に表示する。ウィンドウWは、領域A、B、Cを含む。領域Aには、平面画像を表示するとともに平面画像のうち立体形状にする部分である対象領域が表示される。領域Bには、平面画像に高さを与えるための曲線が入力される。領域Cには、領域A、Bへの入力に基づいて形成される立体形状の画像が表示される。領域A、B、Cに表示される内容については、
図10で詳しく説明する。
【0041】
図7は、
図6の装置本体120のハードウェア構成図である。装置本体120は、コントローラとしてのCPU101と、主記憶装置としてのROM102と、RAM103とを備えている。また、装置本体120は、補助記憶装置としてのHDD104と、SSD105(Solid State Drive)と、通信装置としてのI/F106とを備えている。I/F106は、インターネット等のネットワークに接続される。
【0042】
図6に示すCPU、ROM、RAM、HDDは、
図7に示すCPU101、ROM102、RAM103およびHDD104とそれぞれ同じである。また、装置本体120は、表示装置140用のインタフェース(I/F)108と、キーボードやマウス等の入力機器用のインタフェース(I/F)109、110とを備えている。上記各部は、アドレスバスやデータバス等により相互に電気的に接続されている。
【0043】
<機能構成>
図8は、
図6の立体データ生成装置100の機能構成の一例を示すブロック図である。例えば、
図8に示す機能ブロックは、
図7に示したCPU101が立体データ生成プログラムを実行することで実現される。なお、
図8に示す機能ブロックは、ハードウェアにより実現されても良い。
図8に示すように、装置本体120は、対象領域抽出部160と、曲線入力受付部162と、立体データ生成部164とを有する。
【0044】
対象領域抽出部160は、表示装置140の画面に表示される平面画像において立体形状を生成する対象領域を抽出する。曲線入力受付部162は、対象領域内の各位置から輪郭までの距離と高さとの関係を示す曲線の入力を受け付ける。立体データ生成部164は、曲線入力受付部162が受け付けた曲線に基づいて、対象領域内の位置毎に、各位置と輪郭の一点との距離に応じた高さを求め、求めた高さに基づいて対象領域の立体形状を表すデータを生成する。
<立体形状のデータ生成動作>
図9は、
図6の立体データ生成装置100の動作を示すフローチャートである。すなわち、
図9は、立体データ生成方法と、立体データ生成プログラムにより実行される処理とを示している。例えば、
図9に示すフローチャートは、立体データ生成プログラムが起動されたことに基づいてCPU101により開始され、対象領域抽出部160、曲線入力受付部162および立体データ生成部164により実現される。なお、立体形状の生成に使用する元の平面画像は、HDD104等に予め格納されているとする。
【0045】
まず、ステップS10において、CPU101は、HDD104に格納された平面画像データを読み込む指示に基づき平面画像データをRAM103に読み込むのを待ち、平面画像データをRAM103に読み込んだ場合、処理をステップS12に移行する。例えば、平面画像データの読み込みの指示は、入力機器150を操作するユーザにより行われる。なお、平面画像データは、立体データ生成装置100に接続されたネットワーク、DVDドライブ122に装着されるDVD、またはUSBポート124に接続されるUSBメモリ等を介して装置本体120のHDD104に格納される。
【0046】
ステップS12において、CPU101は、RAM103に読み込んだ平面画像データを領域Aに表示する。次に、ステップS14において、CPU101は、領域Aに表示した平面画像データの画素値の特徴を解析し、対象領域を抽出する。例えば、CPU101は、平面画像データにおいて、ユーザにより予め指定された色を含む画素を抽出する。なお、CPU101は、同様の色や同様の階調を含む画素を自動的に抽出しても良く、矩形や円形等の図形を抽出し、抽出した図形を対象領域としても良い。例えば、ステップS14の処理は、
図8に示した対象領域抽出部160により実施される。
【0047】
次に、ステップS16において、CPU101は、抽出した対象領域の輪郭を、領域Aに表示中の平面画像に重ねて表示する。また、CPU101は、例えば、領域Aに表示した対象領域内の複数の位置のうち、輪郭から最も離れている位置と輪郭との距離(最大距離)を算出する。複数の位置は、平面画像を構成する画素の各々でもよく、隣接する所定数の画素群でもよい。以下では、対象領域内の各位置を画素として説明する。
【0048】
そして、CPU101は、ゼロから最大距離までを横軸とするグラフを領域Bに表示する。グラフの縦軸は高さを示す。横軸の長さで示される距離と縦軸の長さで示される高さとの関係は、所定の比率(例えば、1:1)に設定される。グラフは、対象領域を立体形状にするための曲線が入力される領域である。なお、CPU101は、最大距離を算出することなく、入力機器150を介してユーザから入力される値(距離)を受け付け、受け付けた値をグラフの横軸の最大値に設定しても良い。例えば、ステップS16の処理は、曲線入力受付部162により実施されても良く、立体データ生成プログラムにより実現されるグラフ表示部等の他の機能部により実施されても良い。
【0049】
次に、ステップS18において、CPU101は、入力機器150を介してユーザにより領域B内のグラフに曲線を入力されるのを待ち、曲線が入力された場合、処理をステップS20に移行する。すなわち、CPU101は、対象領域内において、対象領域の各位置の輪郭からの距離と高さとの関係を示す曲線の入力を受け付ける。換言すれば、CPU101は、グラフの領域内に描かれる線を曲線として取得する。例えば、ステップS18の処理は、
図8に示した曲線入力受付部162により実施される。
【0050】
なお、CPU101は、グラフに入力された曲線を示す曲線データ(例えば、曲線の各点の座標)をRAM等に格納する。グラフに入力される曲線は、いわゆる曲線と、直線と、折り曲げ線との少なくともいずれかを含む。曲線の入力の例は、
図10で説明される。
【0051】
例えば、CPU101は、ステップS16においてグラフを領域Bに表示する場合、グラフの横軸の距離=0から距離=最大値の間に所定の高さに徐々に変化するデフォルトの直線(例えば、グラフの対角線)を描画する。そして、入力機器150を介してユーザが、デフォルトの直線の任意の一点を選択して移動する操作を少なくとも1回行い、デフォルトの直線を変形することで曲線が入力される。なお、CPU101は、入力機器150の一例であるマウスの操作に基づいてグラフ上を移動するポインタの軌跡を曲線として入力しても良い。このように、ユーザは、ウィンドウWの領域Bを使って曲線を自由に入力することができる。曲線は、例えば、マウス等を使ってグラフ内でポインタを動かすだけで、極めて簡易に入力することができる。
【0052】
ステップS20において、CPU101は、ステップS14で抽出した対象領域と、ステップS18で入力された曲線とに基づいて、対象領域の輪郭からの距離に応じて高さが変化する立体形状のデータを生成する。すなわち、CPU101は、入力された曲線に基づいて、対象領域内の位置毎に、各位置と輪郭の一点との距離に応じた高さを求め、求めた高さに基づいて対象領域の立体形状を表すデータを生成する。
【0053】
CPU101は、生成したデータに基づいて、立体形状を示す画像(例えば、斜視図)を領域Cに表示する。例えば、ステップS20の処理は、
図8に示した立体データ生成部164により実施される。
【0054】
次に、ステップS22において、CPU101は、入力機器150を介してユーザから曲線の再入力の指示を受けた場合、処理をステップS18に戻す。また、CPU101は、ユーザからの曲線の再入力の指示がない場合(すなわち、編集完了の指示を受けた場合)、
図9に示す処理を終了する。ユーザは、領域Cに表示された立体形状に満足した場合、表示装置140のウィンドウW内に表示されるメニュー画面等から編集完了ボタンを選択し、領域Cに表示された立体形状に満足しない場合、メニュー画面等から曲線の再入力のボタンを選択する。曲線が再入力された場合、その曲線に対応する立体形状は、領域Cにリアルタイムで表示される。このため、ユーザは、領域Cに表示される立体形状を確認しながら、満足する立体形状が得られるまで、曲線を繰り返し再入力することができる。
【0055】
図10は、平面画像から立体が生成されるまでの例を示す説明図である。例1および例2では、領域Aに表示された平面画像から円状の対象領域が抽出され、平面画像内に対象領域を示す輪郭が表示される。また、領域Bに曲線を入力するグラフが表示され、ユーザにより曲線が入力される。例えば、グラフ内に示す右肩上がりの対角線は、デフォルトで表示される曲線である。
【0056】
図10の例では、対象領域が円形状であるため、輪郭からの距離は、円の中心が最も大きい。このため、領域Bに表示されるグラフにおいて、輪郭からの距離を示す横軸の最大値は、輪郭から円の中心までの距離に等しい。CPU101は、対象領域の各画素について、輪郭を形成する複数の点までの距離を算出し、例えば、最も小さい距離を求める。すなわち、グラフの横軸の距離="0"に対応する、対象領域の位置(画素)毎の輪郭の一点は、各位置(画素)に最も近い輪郭上の点である。
【0057】
例1では、領域Bに入力される曲線は、輪郭から中心部に向けて高さが高くなり、途中で高さが低くなり、再び、中心部に向けて高さが高くなっている。そして、CPU101は、画素毎に、輪郭までの最小距離をグラフに当てはめ、その画素の位置での高さを求める。その結果、例1では、輪郭で示される対象領域を底面とし、輪郭から中心部に向けて高さが高くなり、途中で高さが低くなり、再び、中心部に向けて高さが高くなる立体形状が、領域Cに表示される。
【0058】
例2では、領域Bに入力される曲線は、輪郭から中心部に向けて高さが山なりに変化している。CPU101は、画素毎に、輪郭までの最小距離をグラフに当てはめ、その画素の位置での高さを求める。その結果、領域Cには、領域Bで指定した曲線にしたがって、輪郭で示される対象領域を底面とし、輪郭から中心部に向けて高さが一度高くなった後に低くなる中央部が凹んだ立体形状が表示される。
【0059】
図10に示すように、対象領域が円形状の場合、輪郭からの距離は、円の中心が最も大きく、輪郭に近づくほど小さくなる。このため、立体形状の表面の形状は、距離が最大側の縦軸を軸としてグラフを回転したときに曲線の軌跡に対応した形状となる。したがって、ユーザは、入力する曲線と立体形状との対応関係を容易に認識することができる。
【0060】
図10に示すように、本実施形態では、高さの変化を示す曲線を自由かつ簡易に入力できるため、対象領域から頂点に向けて高さが徐々に大きくなる立体形状だけでなく、高さの上昇または下降が途中で変化する立体形状を容易に生成することができる。
【0061】
図11は、平面画像から立体形状が生成されるまでの別の例を示す説明図である。
図10と同じ要素および同様の動作については詳細な説明は省略する。例3および例4では、領域Aに表示された平面画像内に2つの円の一部を重複させただるま形状の対象領域が抽出され、平面画像内に対象領域の輪郭が表示される。
【0062】
図10と同様に、領域Aには抽出された対象領域が表示され、領域Bには曲線を入力するグラフが表示される。例3では、
図10の例1と同じ曲線が指定され、例4では、
図10の例2と同じ曲線が指定される。対象領域が
図11に示すだるま形状の場合、領域Bに表示されるグラフの横軸の最大値は、輪郭から2つの円のそれぞれの中心までの距離にほぼ等しい。なお、輪郭からの距離の最大値は、画素毎の輪郭までの距離の最大値を算出することで求められる。
【0063】
図11においても、CPU101は、対象領域の各画素について、輪郭を形成する複数の点までの距離をそれぞれ算出し、例えば、最も小さい距離を求める。そして、CPU101は、画素毎に、輪郭までの最小距離をグラフに当てはめ、その画素の位置での高さを求める。
【0064】
そして、例3では、対象領域を構成する2つの円のそれぞれの中心付近に頂を有する立体形状が表示される。例4では、対象領域を構成する2つの円のそれぞれの中心付近が凹んだ8の字形状の立体形状が表示される。
【0065】
図11においても、高さの変化を示す曲線を自由かつ簡易に入力できるため、対象領域から頂点に向けて高さが徐々に大きくなる立体形状だけでなく、高さの上昇または下降が途中で変化する立体形状を容易に生成することができる。さらに、円形またはだるま形状に限らず、あらゆる形状の対象領域が抽出された場合にも、1つの曲線を入力するだけで、形状の異なる複数の立体形状を生成することができる。
【0066】
また、
図10および
図11に示すように、曲線を入力するマンマシンインタフェース(領域Bの操作)は、対象領域の形状等に依存せず、常に同一のため、ユーザは、一度操作を覚えれば、その後は曲線を容易に入力することができる。
【0067】
図10および
図11の領域Cに表示された立体形状の3次元データは、HDD104等に保存される。そして、この3次元データを
図1に示すコンピュータ10に転送し、コンピュータ10が3次元データを立体造形装置50に出力し、立体造形装置50を動作させることで、ユーザにより設定された曲線に対応する立体形状を有する造形物が作製される。例えば、3次元データがカラー情報を含む場合、カラーの造形物が作製される。
【0068】
図12は、対象領域の大きさと曲線とに応じて生成される立体形状の一例を示す説明図である。
図12では、
図9のステップS14の処理により、半径rが"5"、"8"、"10"の円形状の対象領域がそれぞれ抽出されるとする。
図12に斜線で示す図形は、対象領域の中心を通るA-A'線に沿う断面を示している。曲線1、曲線2および曲線3は、領域Bに入力される曲線を示している。また、
図10および
図11と同様に、CPU101は、対象領域における画素毎に、輪郭までの最小距離をグラフに当てはめ、その画素の位置での高さを求める。
【0069】
曲線1の最大値は、
図9のステップS16で説明したように、CPU101が算出した最大距離であり、対象領域の大きさに依存して変化する。例えば、最大値は、各対象領域の半径に等しい。曲線2および曲線3の最大値は、
図9のステップS16で別の例として説明したように、ユーザにより入力された値(距離)を示しており、例として"8"である。
【0070】
曲線1では、最大値が対象領域の大きさに依存して変化し、
図10の例2に相当する立体形状のデータがそれぞれ生成される。曲線2で半径rが"5"の対象領域の場合、曲線2の距離が"5"に対応する高さを中心として中央が凹んだ縦断面がほぼM状の立体形状のデータが生成される。曲線2で半径rが"8"の対象領域の場合に生成される立体形状のデータは、曲線1で半径rが"8"の立体形状のデータと同じである。
【0071】
曲線2で半径rが"10"の対象領域の場合、半径rは最大値(="8")を超えている。この場合、対象領域において、最大値を超えた画素は、最大値での高さに設定される。このため、対象領域の中心からの距離が"2"の領域は、高さがゼロになる。
【0072】
曲線3で半径rが"5"の対象領域の場合、曲線3の距離が"5"に対応する高さを頂点とする三角状の縦断面を有する円錐状の立体形状のデータが生成される。曲線3で半径rが"8"の対象領域の場合、最大値での高さを頂点とする三角状の縦断面を有する円錐状の立体形状のデータが生成される。曲線3で半径rが"10"の対象領域の場合、半径rは最大値を超えている。この場合、曲線2で半径rが"10"の場合と同様に、対象領域において、最大値を超えた画素は、最大値での高さに設定される。このため、対象領域の中心からの距離が"2"の領域は、高さが一定になり、円錐台状の立体形状のデータが生成される。
【0073】
図13は、対象領域内の任意の一点から輪郭までの距離を示す説明図である。
図13に示すように、任意の一点(例えば、画素)から輪郭までの距離は複数ある。本実施形態では、任意の一点の高さを輪郭からの距離に応じて決定するため、考えられる複数の距離から一つの距離を決定する必要がある。
図10および
図11では、CPU101は、対象領域の各点について、輪郭を形成する複数の点までの距離のうち、最も小さい距離を求め、求めた距離をグラフに当てはめ、その点での高さを求めた。
【0074】
しかしながら、CPU101は、対象領域の各画素について、輪郭を形成する複数の点までの距離のうち、最も大きい距離を求め、求めた距離をグラフに当てはめ、その画素の位置での高さを求めても良い。すなわち、グラフの横軸の距離の起点である、対象領域の位置毎の輪郭の一点は、各位置から最も遠い輪郭上の点でも良い。
【0075】
あるいは、CPU101は、対象領域の各画素について、輪郭を形成する複数の点までの距離の平均値をグラフに当てはめ、その画素の位置での高さを求めても良い。さらに、
図6に示したウィンドウWに、各画素から輪郭までの距離の決定方法を選択させる選択画面を含む新たな領域を設けても良い。この場合、距離を決定する選択肢として、最短距離、最長距離、平均距離等がある。
【0076】
対象領域内の任意の一点から輪郭までの距離の算出方法によって、同じ一点においても距離は異なる。このため、曲線が同じ場合にも、距離の算出方法によって異なる形状の立体画像データを作成することができる。また、距離の算出方式を複数の方法から選択可能にする場合、ユーザは、1つの曲線を入力するだけで、複数の形状の立体を得ることができる。
【0077】
図14は、対象領域の各点から輪郭までの距離を算出する方法を示す説明図である。2点AB間の距離を算出する方法として、直線で結んだ距離を算出するユークリッド距離や、軸に並行移動しながらの距離を算出するマンハッタン距離などがある。距離の算出方法は、対象領域内の各点における高さの決定方法に関係し、距離の算出方法によって、各点での高さの値は異なるため、最終的に作製される造形物の形状も異なってくる。このため、距離の算出方法についても、
図6に示したウィンドウWに、距離の算出方法を選択させる選択画面を含む新たな領域を設けても良い。
【0078】
図14においても、距離の算出方法を変えることにより、曲線が同じ場合にも異なる形状の立体画像データを作成することができる。
【0079】
以上、
図1から
図14に示す実施形態では、立体形状を作成するユーザは、ウィンドウWの領域Bを使って曲線を自由かつ簡易に入力することができ、曲線に応じて高さが上昇または下降する様々な外形を有する立体形状を容易に生成することができる。すなわち、平面画像データを使用して、自由度の高い立体形状を簡便に生成することができる。
【0080】
対象領域内の任意の一点から輪郭までの距離の算出方法を変えることによって、曲線が同じ場合にも、異なる形状の立体画像データを作成することができる。また、距離の算出方式を複数の方法から選択可能にすることで、1つの曲線から複数の形状の立体を得ることができる。
【0081】
図15は、別の実施形態における立体データ生成装置の動作を示すフローチャートである。すなわち、
図15は、立体データ生成方法と、立体データ生成プログラムにより実行される処理とを示している。
図9と同じ処理については、詳細な説明は省略する。例えば、
図15に示すフローチャートは、
図9と同様に、立体データ生成プログラムが起動されたことに基づいてCPU101により開始される。なお、立体形状の生成に使用する元の平面画像は、HDD104等に予め格納されているとする。
【0082】
図15の処理を実行する立体データ生成装置の構成は、CPU101が実行する立体データプログラムが異なることを除き、
図6、
図7および
図8に示した立体データ生成装置100の構成と同じである。また、平面画像から立体形状が生成されるまでの例は、ユーザにより指定された輪郭に基づいて対象領域を抽出することを除き、
図10、
図11および
図12と同様である。
【0083】
ステップS20およびステップS22の処理は、
図9に示したステップS10およびステップS20の処理とそれぞれ同様である。ステップS22の後、ステップS24において、CPU101は、領域Aに表示した平面画像内において高さを与える対象領域を示す輪郭が、マウス等の入力機器150を介してユーザにより指定されるのを待つ。すなわち、この実施形態では、CPU101は、対象領域を自動的には抽出せず、領域Aに表示した平面画像において立体形状を生成する対象領域を示す輪郭の入力を受け付ける。
【0084】
CPU101は、輪郭が入力された場合、入力された輪郭に基づいて対象領域を抽出する。なお、対象領域は、入力機器150を使用して描かれた輪郭に基づいて抽出されるだけではない。例えば、入力機器150を使用して選択した領域と同様の色や同様の階調を含む画素を対象領域として抽出しても良い。あるいは、入力機器150を使用して平面画像上の矩形や円形等の図形のユーザによる選択に基づいて、選択された図形を対象領域として抽出しても良い。対象領域の指定方法は、これに限定されることなく、輪郭を有する対象領域が抽出できれば良い。
【0085】
対象領域が指定された場合、CPU101は、指定された対象領域の輪郭を示す情報(座標情報等)をRAM等に格納し、処理をステップS26に移行する。ここで、輪郭は、対象領域と、対象領域の外側との境界を示す。
【0086】
ステップS26、S28、S30、S32の処理は、
図9に示したステップS16、S18、S20、S22の処理とそれぞれ同じである。但し、ステップS32において、ユーザからの曲線の再入力の指示がない場合、処理はステップS34に移行される。
【0087】
ステップS34においてCPU101は、入力機器150を介してユーザから対象領域を示す輪郭を再入力する指示を受けた場合、処理をステップS24に戻す。また、CPU101は、ユーザからの輪郭の再入力の指示がない場合(すなわち、編集完了の指示を受けた場合)、
図15に示す処理を終了する。ユーザは、領域Cに表示された立体形状に満足した場合、メニュー画面等から編集完了ボタンを選択し、領域Cに表示された立体形状に満足しない場合、メニュー画面等から曲線の再入力のボタンまたは輪郭の再入力のボタンを選択する。
【0088】
なお、ステップS34で対象領域を示す輪郭の再入力が指示された場合、その後のステップS28の処理は省略され、前回入力された曲線が使用されても良い。これにより、輪郭が再入力された場合、再入力された輪郭で示される対象領域に対応する立体形状を領域Cにリアルタイムで表示することができる。したがって、ユーザは、領域Cに表示される立体形状を確認しながら、満足する立体形状が得られるまで、輪郭を再入力することができる。
【0089】
以上、
図15に示す実施形態においても、
図1から
図14に示す実施形態と同様の効果を得ることができる。すなわち、立体形状を作成するユーザは、ウィンドウWの領域Bを使って曲線を自由かつ簡易に入力することができ、曲線に応じて高さが上昇または下降する様々な外形を有する立体形状を容易に生成することができる。
【0090】
さらに、
図15に示す実施形態では、ユーザにより指定された輪郭に基づいて対象領域を抽出することができるため、ユーザの好みに合わせて自由な大きさの立体形状のデータを生成することができる。
【0091】
図16は、上述した実施形態の手法を用いない場合の立体形状のデータ生成方法を示す説明図である。
図10および
図11と同じ要素および同様の動作については詳細な説明は省略する。
図16では、曲線を入力するグラフはないため、領域Bは存在しない。
【0092】
図16に示す例5は、
図10と同様に、領域Aに表示された平面画像内に円状の対象領域が抽出され、平面画像内に輪郭が表示される。また、対象領域内に立体形状の頂点が指定され、指定された頂点が対象領域内に表示される。そして、指定された頂点にしたがって、輪郭で示される対象領域を底面とし、輪郭から頂点に向けて高さ変化する立体形状が生成され、領域Cに表示される。
【0093】
図16に示す例6は、
図11と同様に、領域Aに表示された平面画像内に2つの円の一部を重複させただるま形状の対象領域が抽出され、平面画像内に輪郭が表示される。また、対象領域内に立体形状の頂点が指定され、指定された頂点が対象領域内に表示される。そして、指定された頂点にしたがって、輪郭で示される対象領域を底面とし、輪郭から頂点に向けて高さ変化する立体形状が生成され、領域Cに表示される。
【0094】
図16に示すように、1つの頂点を指定するだけでは、錐状の立体形状しか生成することができないため、生成可能な立体形状の自由度は低い。
【0095】
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
【符号の説明】
【0096】
10 コンピュータ
100 立体データ生成装置
101 CPU
102 ROM
103 RAM
104 HDD
105 SSD
106、108、109、110 インタフェース
120 装置本体
122 DVDドライブ
124 USBポート
140 表示装置
150 入力機器
160 対象領域抽出部
162 曲線入力受付部
164 立体データ生成部
【先行技術文献】
【特許文献】
【0097】
【文献】特開2017-120571号公報
【文献】特開2018-58340号公報