画像の畳み込み
画像に独自の畳み込みカーネルを適用します。重みを指定する3x3または5x5の行列、結果を割るための任意のスケール、処理後に加えるオフセットを入力すると、各色チャンネルにフィルターを適用します。シャープ、ぼかし、エッジ、エンボス、モーションフィルターを作成したり、教科書のカーネルを試したり、コードを書かずに画像処理のアイデアを試作したりできます。
よくある質問
カーネルはどのように入力しますか?
3x3カーネルには9個、5x5カーネルには25個の数値を入力します。数値はスペース、コンマ、または改行で区切り、左上から行ごとに並べてください。既定値の0 -1 0 / -1 5 -1 / 0 -1 0は、古典的なシャープ化カーネルです。各重みは-1000から1000の範囲にしてください。
倍率は何に影響しますか?
各ピクセルの加重合計をスケールで割ってから、オフセットを加えます。既定値の0では、カーネルの合計が正の場合はその合計を、それ以外の場合は1を使用します。これにより、ぼかしやシャープ化のカーネルで画像全体の明るさが保たれます。カーネルを自分で正規化する場合は、1000までの任意のスケールを入力できます。
オフセットは何に使いますか?
-255から255までのオフセットを、スケーリング後の各結果に加えます。エッジやエンボスのカーネルでは値が0付近になることが多いため、オフセットに128を指定すると中間グレーに移り、正負両方の反応が見えるようになります。0から255の範囲外の結果はクリップされます。
最初に試すのに適したカーネルは何ですか?
ボックスぼかしは1を9個、ガウスぼかしは1 2 1 / 2 4 2 / 1 2 1、エッジ検出は-1 -1 -1 / -1 8 -1 / -1 -1 -1、エンボスは-2 -1 0 / -1 1 1 / 0 1 2です。より強くぼかすには、1を25個並べた5x5カーネルを使用してください。
すべてのチャンネルにフィルターが適用されますか?
カーネルは各色チャンネルに個別に適用されるため、赤、緑、青は同じ方法で処理されます。フィルター適用前にアルファチャンネルを分離し、処理後に戻すため、透明度がぼけたりシャープになったりすることはありません。結果はPNGとして保存されます。
結果が黒または白になるのはなぜですか?
カーネルの重みの合計が0でオフセットを使わない場合、平坦な領域の反応は0になるため黒くなります。重みの合計が大きく正で、スケールが小さすぎる場合は、すべてが白にクリップされます。自動スケールを使うか、オフセットに128を加えると、反応全体を確認できます。
画像のサイズは変わりますか?
いいえ。出力の幅と高さは入力と同じです。境界付近のピクセルは、端で利用できる隣接ピクセルを使ってフィルター処理されます。一辺が4000ピクセルを超える画像は、フィルターを適用する前に収まるよう縮小されます。
どの形式をアップロードできますか?
JPEG、PNG、GIF、WebP、TIFF、AVIFの画像に対応しており、サイズ上限は5 MBです。アニメーションファイルは最初のフレームを使用します。フィルター処理後の画像は、可逆圧縮のPNGとしてダウンロードされます。
カーネルはなぜ3x3と5x5だけですか?
この2つのサイズで古典的なフィルターのほぼすべてをカバーでき、大きな画像でもリクエストを高速に処理できます。より強いぼかしには、分離可能なガウスぼかしを使う専用のぼかしツールが適しています。より広い範囲に効果をかけたい場合は、ツールを2回実行してください。
どのエンジンが畳み込みを実行しますか?
このツールはlibvipsを基盤とするsharpライブラリのconvolve処理を使用します。入力した重みに対して正確に計算され、同じ入力からは常に同じ出力が得られます。