エッジ抽出後の画像から、ゴマ模様だけを除去するには

このQ&Aのポイント
  • エッジ抽出した画像から線以外のゴマ模様を除去する方法を教えてください。
  • ゴマ模様を含んだエッジ抽出画像から、添付ファイルの左端の線だけを残す方法についてご教示ください。
  • 黒いゴマ模様を含んだエッジ抽出画像から、左端の線を正確に残す方法をお教えください。
回答を見る
  • ベストアンサー

エッジ抽出後の画像から、ゴマ模様だけを除去するには

エッジ抽出をした画像に、線以外の、ゴマ模様(添付ファイルをご参照ください)が入ってしまいます。 これをうまく除去するにはどうしたらよいでしょうか。 理想としては、添付ファイルの左端の線のみを残したいです。 左端の線は物の輪郭線です。 が、直線ではありませんし、その線自体がところどころ途切れていますので 黒ゴマ模様とどう識別させるか、が難しくて困っています。 例えば、10×10ピクセルで左上から画素値を走査して、 「白い領域が○%以上で、黒い領域が○%なら、その中心ピクセルは白に変更する」 で、うまくいかないだろうか、と考えたのですが、 ひとつひとつのゴマ模様の大きさも形もマチマチなので、本来残って欲しい黒い色も白に変換してしまうだろう、と思い至り、悩んでいます。 ぜひ、何かよいアイデアがありましたら教えてください。 どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

正直この画像だけから左の黒線?を抽出するのは相当難しいだろうと思います。 抽出したいものに関する情報(位置・形状など)か、原画像があればもう少しアドバイスできるかもしれません。

rosafilipes
質問者

お礼

お礼がとても遅くなってしまってすみません。 メール通知を設定したつもりで、見たら書いてくださっていて焦りました。 すみません! やはり、難しいでしょうか。 原画はこれそのものなのです。 この画像でうまくいけば、応用したいと思っているのですが。 う~ん、もうちょっと悩みます。。 知識のある方にとっても、やはり難しいとわかって安心しました。 アドバイスありがとうございました。

関連するQ&A

  • 使用する言語(画像処理)

    現在大学で情報系の研究を行っています。 「画像ファイルを読み込んでエッジを検出、エッジのラインで囲まれている部分を一つの領域として取得する」というプログラムを作りたいと思っています。 かなり分かりにくい説明だとは思うのですが、例を挙げますと・・・ 世界地図をスキャナで読み込む ↓ 取得した画像ファイルをプログラムに読み込ませる ↓ 各国の輪郭をエッジとして検出、輪郭以外は真っ白にしてモノクロ化 ↓ エッジで囲まれている部分(国の領土)をそれぞれ一つのオブジェクトとして認識できる。つまり、一枚の画像としてではなくそれぞれの国の領域を持つオブジェクトとして保持することができるようにする。 このようなプログラムを書きたいと思っています。しかし現在はC言語の知識しかなく、他にVisualBasicやJava、C++なども考えていますがどの言語がこのような処理に適しているのか分かりません・・・ どの言語でも書こうと思えば書けるものなのでしょうか?それともそれぞれの言語に得意分野があるのでしょうか?

  • フォとショップのトリミングツール

    フォトショップのトリミングツールの使い方を教えて下さい。ヘルプ機能で検索すると「トリミングコマンドを使用して画像を切り抜くにはイメージ/トリミングを選択します。トリミングダイアログボックスからオプションを選択します。「透明ピクセル」は、画像のエッジから透明部分をトリミングし、透明部分のピクセルを含まない最小画像を残します。「左上のピクセルカラー」は、画像から見て左上ピクセルのカラーの領域を削除します。「右下のピクセルカラー」は、画像から見て右下ピクセルのカラーの領域を削除します。トリミングする画像の領域を「上端」、「下端」、「左端」、「右端」から選択します。複数選択することも可能」とありますが、なんのこっちゃという感じで初心者の自分には意味不明です。これまで画像をトリミングする時は切り抜きツールを使用してましてこのトリミングコマンド?は使ったことがなかったのですが、プロのデザイナーの方はこれを使用するのは当たり前?なのでしょうか。切り抜きツールとの違いなど、また適した用途などあればあわせてご紹介下さい。 宜しくお願いします。

  • IE6で容量の大きい画像が表示されません。

     IE6で、容量の大きくてピクセル等倍ではブラウザの画面全体で表示し切れない画像は、自動的に画素レートを落して全体表示され、画面の左上に印刷などのアイコン、右下にピクセル等倍/全体表示の切替のアイコンが表示されます。  この時、PCを立ち上げて最初の1、2回くらいは表示されるのですが、それ以降は上記のアイコンのみで画像が全く表示されなくなります。(よくある□に赤×となって表示されないのとは違います。)  これはどうしてなのでしょう?表示されるようには出来ないものでしょうか?  因みに、OSはWindows98SEです。また、インターネット一時ファイルのフォルダ容量を100MBから1000MBくらいまで変更してみたのですが、変わりませんでした。

  • 液晶プロジェクター投影で・・・

    お世話になります。 パネルサイズが1.3型(アスペクト比4:3)、 画素数が1024×768ドットの液晶プロジェクターに パソコンを接続し投影した時の事なのですが、 パソコン側の画面設定(画面の領域)が1024×768ピクセルでは 画面の右端か左端が少し欠けた状態で投影されます。 設定を800×600ピクセルにすると欠ける事無く投影されます。 前者の設定でも欠ける事無く投影されてもいいと思うのですが、 どうして欠けてしまうのでしょうか?教えてください。 液晶プロジェクター:TH-L6500 パソコン:OSはWIN98以上

  • 画像のエッジ抽出について

    画像のエッジ抽出について 画像処理を学び始めたばかりのものです。 細菌や細胞などのエッジを、 C言語を使って抽出しようと思っているのですが ・Sobelフィルタ ・FFTによる低周波カット ・ラプラシアンフィルタなど の代表的なフィルターを組み合わせて使っても、綺麗にエッジが出ません。 二値化してエッジになるのには遠い状態です。 自分の撮った画像が悪かったのか・・と思いましたが、 フリーソフトのimageJで、エッジ抽出という処理をすると 綺麗に最近の形状が出ます。 これはどのようなアルゴリズムを使っているのでしょうか・・・ 教科書やネットを調べていても、上の3つ以外にフィルタがなさそうなので 途方に暮れています。。 お恥ずかしいですが、よろしくお願いいたします。。

  • DCT変換の圧縮について

    画像をDCT変換すると、左上の方に重要な成分が集まりますよね。 なので右下の方をカットして復元しても元画像に大きな影響を与えない。つまり少ない劣化で圧縮できた。 と言うのがDCT変換の圧縮であると認識しています。 (これが間違いだったらすみません。勉強不足でした。) でもこれって復元画像の画素数(ピクセル数?)は変わりませんよね?変わるのは各画素の数値だけ。この場合、元画像に比べて復元画像のファイルサイズは減少するんでしょうか?ファイルサイズは画素数に依存すると思うんですが… (もしかして、圧縮=ファイルサイズの減少、って訳ではない?)

  • photoshopでドットの矢印を作る

    初歩的な質問失礼します。 photoshop(CS4)にて、10ピクセル×10ピクセルのキャンバスサイズで新規ファイルを作成し、鉛筆ツールの「マスター直径1px」「固さ100%」でクリックしながら添付画像左端にあるようなドットの矢印を作ろうとしていたのですが、矢印の斜めの部分が奇麗にかけません。 ちゃんと斜めの位置にクリックしているのに、真下にドットが描かれたりしてしまいます。 どうすれば思うように作れるのでしょうか?? どなたかご教授ください!よろしくお願い致します!

  • ピクセルの座標を取得するには

    OpenCVを使っています。 輪郭抽出のプログラムでうまくいかないところがあり困っています。 もし原因や修正方法をおわかりの方がいらしたらぜひアドバイスいただけると助かります。 11×11ピクセルの画像(CV_8UC3)に、一本 上から下に伸びた輪郭線があります。 この輪郭線を境に白黒に塗りつぶしています。 左上から右へ走査し 「もしピクセルが白なら黒にする」 として 処理された画像は輪郭線で白黒に塗り分けることはできました。 このとき、輪郭線の「頂点」を保存したいのですが、うまくいきません。 頂点を表示させると以下のようになってしまいます。 0,0 0,1 0,2 0,3 : 0,10 どこを直すとうまくいくでしょうか。 ========= while (k < 11){ // k = y軸 tate[k] = k; // y方向 cb = lap_img->imageData[lap_img->widthStep * k + j * 3]; while(j < 11 && cb == -1){ // j = x軸 lap_img->imageData[lap_img->widthStep * k + j * 3] = 0; lap_img->imageData[lap_img->widthStep * k + j * 3 + 1] = 0; lap_img->imageData[lap_img->widthStep * k + j * 3 + 2] = 0; lap_img->imageData[lap_img->widthStep * k + j * 3 + 3] = 0; lap_img->imageData[lap_img->widthStep * k + j * 3 + 4] = 0; yoko[k] = j; // x方向 if (top == j || top < j){ top =j; } j = j + 1; cb = lap_img->imageData[lap_img->widthStep * k + j * 3]; printf("%d, %d\n", tate[k],top); j = 0; k = k + 1; } }

  • PowerPointの図の取り出し方法

     PowerPoint中に貼り付けられた(gifファイル等の)図を取り出す方法をご存知ないでしょうか?  PowerPoint中でコピーして、他のお絵描きソフトに貼り付けた場合、ピクセル数がオリジナルと異なるため、線や輪郭がぼやけてしまいます。  そのため、ある色の部分だけ他の色に変更したいのですが、なかなかうまくできません。  現状では、図を貼り付けたPowerPointファイル以外に、オリジナルの図も保存しておく必要があり、非常に無駄です。

  • 写真を添付するとメールが重くなってしまいます!

    写真(jpeg file)を添付するとメールが重くなってしまいます!パソコン初心者のため、初歩的なことから教えて頂きたいのですがメールを軽くするためには・・・(1)ファイルサイズ(~KB)を小さくする、(2)写真の解像度(ピクセルというんでしょうか?)を小さくする(3)写真の「面積」を小さくする・・・のうちどの作業をすれば画像添付のメールは軽くなるのでしょうか?今私はは「縮専」というソフトを使っています。 http://bird.zero.ad.jp/~zas55369/free/syukusen.htm 解説には「画素を小さくできる」と書いてあります。そもそもこの「画素」の意味がわかっていないので、理解に苦しむのですが、これは解像度のことでしょうか?すると上記の(2)を圧縮するということなのでしょうか?また、もしそうならば(1)も(3)も圧縮すればもっとメールは軽くなると思うのですが、そのやり方もご存知でしたらぜひ教えてください。

専門家に質問してみよう