ラインを伸ばす


8

仕事

線のある画像が与えられた場合、線を画像の端まで延長した線を含む画像を生成または表示します。線は黒で、背景は白です。画像サイズは、100x100画像を任意の合理的な形式で提供されます(例えばjpgpngppmbmp)。

ラインフォーマット

私は、線の描画にBresenhamの線アルゴリズムの簡略化バージョンを使用しています。線は整数の勾配のみを持つため、線がピクセルを部分的に覆うことはなく、色を付けません。

ウィキペディアの画像

直線が直線でない限り、最低でも3x3になります。この場合、画像には3x1または1x3しか表示されません。ラインも画像の端に片側があるため、一方向に延長するだけで済みます。

例(.png、赤い線が追加されているので、見やすくなっています):

ここに画像の説明を入力してください ここに画像の説明を入力してください

実際の例(.png

ここに画像の説明を入力してください ここに画像の説明を入力してください

====================

ここに画像の説明を入力してください ここに画像の説明を入力してください

====================

ここに画像の説明を入力してください ここに画像の説明を入力してください

====================

ここに画像の説明を入力してください ここに画像の説明を入力してください

====================

ここに画像の説明を入力してください ここに画像の説明を入力してください


プログラム画像入力をファイル名として受け取る必要がありますか、それとも他の形式で入力を受け入れることができますか?(例:hexdump、リンク、アップロード、コピー/貼り付け)一部のプログラミング言語では他の形式の入力を使用する必要があるため、私は質問します。
DanTheMan 2016

1
画像ファイルを読み込めない言語は知りません。I / Oセクションに有効として含めることができる一般的な形式を知っていますか?
J Atkin

@JAtkinは入力をURLとして取得できますか?
ダウンゴート2016

たぶん……どうしてしたいの?
J Atkin

回答:


2

Mathematica、125バイト

ImageRotate@Image@SparseArray[Array[Floor,101,#&@@ImageLines[ColorNegate@#,Method->"RANSAC"]]+1->0,{101,101},1][[;;-2,;;-2]]&

説明

ImageLinesメソッドで画像の線を検出しRANSACます。最初に検出された線を取り、それを画像に変換します。関数全体が画像を引数として取り、画像を返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.