バラバラに分割された画像から元画像を作り出したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
墨汁

バラバラに分割された画像から元画像を作り出したい

#1

投稿記事 by 墨汁 » 10年前

バラバラに分割された画像群から元の画像を復元したいのですが、なにかいい方法はありますでしょうか?

具体的には

------------
| 4 | 1 |
------------
| 3 | 2 |
------------

のような順番に分割された画像から

------------
| 1 | 2 |
------------
| 3 | 4 |
------------


のような形で正しい状態に戻した画像を得たいです。

分割するサイズや縦横の数は決まっているので、それぞれのパーツに独立させることはできます。


OpenCV等を使えばいいのかな?と思っているのですが、OpenCVを使った経験が殆ど無く、どこの処理から手を付けていいかわからないような状態です
言語やライブラリはといません、良い方法があればご教受ください

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: バラバラに分割された画像から元画像を作り出したい

#2

投稿記事 by h2so5 » 10年前

一般的には、パーツの境界線における色の変化が最も少ない状態が正しい画像ということになります。
分割数が少ないならすべての組み合わせに対して境界線でのRGB色空間での距離の平均を求め、それが最も小さい組み合わせを選べば良さそうですね。

墨汁

Re: バラバラに分割された画像から元画像を作り出したい

#3

投稿記事 by 墨汁 » 10年前

h2so5 さんが書きました:一般的には、パーツの境界線における色の変化が最も少ない状態が正しい画像ということになります。
分割数が少ないならすべての組み合わせに対して境界線でのRGB色空間での距離の平均を求め、それが最も小さい組み合わせを選べば良さそうですね。

なるほど。やっぱり境界の色を見ていくやり方が一般的なのですね。
>境界線でのRGB色空間での距離の平均を求め
この言葉の言い回しが難しくてわからないのですが、RGBがより近いものが正しい組み合わせとなるということでいいんでしょうか?


また、この手法に具体的な名前とかはありますか?(検索に使いたいので……)
もし、この手法に関しての解説サイトなどがありましたら、そちらも紹介していただけないでしょうか?


PS.
このトピックを建てた時や、この返信を書き込む時「送信されたフォームは不正です。もう一度フォームを送信してみてください。」と表示されて、何度投稿しても投稿できない現象が起きています。(10回ぐらいやったら1回は成功するのですが)
今サーバーが不安定だったりするのでしょうか?

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: バラバラに分割された画像から元画像を作り出したい

#4

投稿記事 by h2so5 » 10年前

墨汁 さんが書きました: >境界線でのRGB色空間での距離の平均を求め
この言葉の言い回しが難しくてわからないのですが、RGBがより近いものが正しい組み合わせとなるということでいいんでしょうか?
RGB色空間での距離は (A.r - B.r)^2 + (A.g - B.g)^2 + (A.b - B.b)^2 の平方根で表されます。
色の差が分かれば計算式は何でもよいです。
墨汁 さんが書きました: また、この手法に具体的な名前とかはありますか?(検索に使いたいので……)
もし、この手法に関しての解説サイトなどがありましたら、そちらも紹介していただけないでしょうか?
定石というほどの物でもないので名前はないと思います。
境界を調べるという意味では「エッジ検出」などが近いですが、今回はエッジの位置が固定で強さのほうが問題なので参考にはならないかもしれません。
あとエッジは高周波成分なのでスペクトル解析でも調べられます。

アバター
usao
記事: 1889
登録日時: 11年前

Re: バラバラに分割された画像から元画像を作り出したい

#5

投稿記事 by usao » 10年前

画像を分割する数が多いようであれば
並べ方の組み合わせが多くなるから
縮小した絵の上で判定するとか ヒストグラム間の類似度とかで先にざっくりと判定して
絞り込んだほうがよいでしょうね.
オフトピック
>名前
たとえば,カメラで複数方向を撮った絵からパノラマ画像をつくるみたいな
画像間に共通視野があるものをつなげて一枚の大きなのにするような問題を
image stitching とか呼んだりするけど…
今回のは完全にぶった切ってるのだろうから,違うだろうなぁ.

墨汁

Re: バラバラに分割された画像から元画像を作り出したい

#6

投稿記事 by 墨汁 » 10年前

h2so5 さんが書きました:
墨汁 さんが書きました: >境界線でのRGB色空間での距離の平均を求め
この言葉の言い回しが難しくてわからないのですが、RGBがより近いものが正しい組み合わせとなるということでいいんでしょうか?
RGB色空間での距離は (A.r - B.r)^2 + (A.g - B.g)^2 + (A.b - B.b)^2 の平方根で表されます。
色の差が分かれば計算式は何でもよいです。
墨汁 さんが書きました: また、この手法に具体的な名前とかはありますか?(検索に使いたいので……)
もし、この手法に関しての解説サイトなどがありましたら、そちらも紹介していただけないでしょうか?
定石というほどの物でもないので名前はないと思います。
境界を調べるという意味では「エッジ検出」などが近いですが、今回はエッジの位置が固定で強さのほうが問題なので参考にはならないかもしれません。
あとエッジは高周波成分なのでスペクトル解析でも調べられます。

ありがとうございます、だいたい実装の手順は理解できてきました。
最初はOpenCVの関数一つで出来るのかなとか思ってましたが、やっぱり自分で書くしかないっぽいですね。
教えていただいた、端っこの方の色がより近いものを探しだすというので実装してみます。
h2so5さん、ありがとうございました。




usao さんが書きました:画像を分割する数が多いようであれば
並べ方の組み合わせが多くなるから
縮小した絵の上で判定するとか ヒストグラム間の類似度とかで先にざっくりと判定して
絞り込んだほうがよいでしょうね.
オフトピック
>名前
たとえば,カメラで複数方向を撮った絵からパノラマ画像をつくるみたいな
画像間に共通視野があるものをつなげて一枚の大きなのにするような問題を
image stitching とか呼んだりするけど…
今回のは完全にぶった切ってるのだろうから,違うだろうなぁ.

そんなに画像は多くならない予定ですが、もし多くなったら縮小した絵で判断したりしてみます。
あと、image stitichingという名前を教えていただけて本当に助かりました(実は存在走っていたのですが、あれ名前なんて言うんだ?とこまっていたところでした)
usaoさんも有用なアドバイスをありがとうございました。




とりあえず、流れはわかった感じがするので、このトピックは解決にして閉めます。
お二方ともありがとうございました

P.S. また困ったことがあったら聞きにきます^^

閉鎖

“C言語何でも質問掲示板” へ戻る