
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは.
>文字と画像の境界が曖昧になってしまわないでしょうか?
これはいかなる画像拡大法を用いてもそうなることであり,そして仕方の無いことです.
詳細は省略しますが,拡大を行ったところでエッジ近傍の鋭さを表す,
「画像の高周波成分」が復活するわけではないからです.
この意味では高周波成分を強調するバイキュービックは良い選択です.
この方法が拡大と同時に「エッジ強調処理」をかけるようなものだからです.
周波数云々のことが分からない場合はフーリエ変換などの文献や書籍を当たってください.
なお,高周波成分の復活(強調ではありません)は,
いわゆる「信号処理学」の分野になってしまいますので,
この場所で簡単に説明することができるような内容ではありません.
とりあえず,拡大アルゴリズムが指定できる画像処理ソフト(gimpなど)
で拡大を行ってみて視覚的に判断してはどうでしょうか.
私の回答はかなり「理論寄り」の回答であり,「やってみた方が分かりやすい」こともありますので.
No.3
- 回答日時:
こんにちは.
画像拡大で必要なのは要するに「間の画素値を作る」ことです.
これは「拡大後の画素値が何処から来たか」を計算することによります.
例えば,100*100の画像を3/2倍に拡大すると150*150になるのはわかると思います.
ここで,拡大後の画像の(100,100)の画素は,元の画像の(100*2/3,100*2/3)=(66.66,66.66)に対応します.
ところが,元の画像の画素値は整数座標でしか分からないわけですから,
「間の画素値を作る」必要が生じます.
通常は,(66.66,66.66)近傍の画素値を寄せ集めて「間の画素値を作る」ことになります.
最も単純なのは「最も近くの画素値を平均すること」です(バイリニア法と言います).
さらに「もう一回り外側の画素値も重みをつけて使うこと」が考えられます.
ここで最も良く使われるのが「バイキュービック法」です.
数学的には「間の値を作ること」を「内挿」と言います.
理論的に最も完全な内挿方法はフーリエ変換から導かれる,
「Sinc関数による重み付け」です.
なのですが,この関数は一画素を作るのに全ての画素値を使わねばなりません.
これでは計算量の面で現実的ではないので,有限の近傍で計算を打ち切ります.
一次近傍→バイリニア法
二次近傍→バイキュービック法等
三次近傍→Lanczos3等
です.下の二つはいずれもSinc関数を近似する目的で構成されています.
バイキュービック法が縮小に向かないのは,
これが「高周波成分を強調するため」です.
縮小時に高周波成分を強調すると逆にギザギザ感が増すことになります.
この回答へのお礼
お礼日時:2008/12/04 17:23
回答ありがとうございます。
お返事遅れて申し訳ありません。
回答を受けてバイキュービック法を少し調べたのですが、例えば濃淡画像に2値の文字が混ざった画像を拡大した時、文字と画像の境界が曖昧になってしまわないでしょうか?
そこをクッキリさせるにはどうしたらいいでしょう?
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# で 数式文字列処理を処理す...
-
Notepad++の関数リスト表示の変...
-
c#のTLS1.2での通信について
-
VisualStudioでC++クラスを追加...
-
Windows Formアプリからコンソ...
-
プログラマー達は何故、プログ...
-
C言語のことです。写真(見にく...
-
gccを行ってもexeファイルが生...
-
c言語
-
C++でデスクトップGUIアプリ開...
-
C言語 バッファについて。
-
visual studio 2022でのC#プロ...
-
プログラミングc++を全く分か...
-
C#でTreeViewのCheckBoxのサイ...
-
int16_t の _t は何?
-
DLLファイルの逆コンパイラにつ...
-
PIC12F1822でLED調光器を作りたい
-
c++の勉強方法を教えてくださ...
-
逆コンパイルと逆アセンブルの...
-
swift言語の最適化 swift最適化...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
色混ぜのアルゴリズム
-
生年月日(yyyy/MM/dd) → 年齢...
-
TEXを使いたい
-
画面の枠に触れている部分を削除
-
画像の透明化
-
HBITMAPを初期化するとは?
-
C言語 極座標変換
-
平滑化フィルタなどフィルタリ...
-
姿勢センサでプロジェクタの台...
-
OpenCVで寸法測定
-
直線と線分の交差判定について...
-
画像の2値化について
-
画像をFFTした際のスペクトル分...
-
OpenCVで、画像の平均階調値よ...
-
行列の積の処理を高速化したい
-
C言語の作成依頼です。
-
画像の拡大
-
Canny法に用いる閾値の決定法に...
-
C++/CLIで画像処理
-
VB BitmapをExcelに貼り付け 大...
おすすめ情報