GIMPによる画像処理

基本概念と画像フォーマット

画像表現の仕組み

RGB

光の三原色 Red, Green, Blue のそれぞれの強さの組み合わせで 色を表現する。計算機処理する場合は各色の最弱(非点灯)を0, 最強を 0xf(4ビット) または 0xff(8ビット) で表現する。 4ビットの場合は3色分12ビットの2進数で 212=4096色, 8ビットなら 224=16777216色が表現できる。

アルファチャンネル

透明度を表す。RGBと透明度を持つ画像をRGBAと呼ぶこともある。 JPEGにはない。透明化したい場合はPNGなどを利用する。 元がJPEG画像の場合はGIMPではレイヤウィンドウでレイヤを右クリック 「アルファチャンネルの追加」を指定し,PNGに保存する。

グレースケール

白と黒の間の灰色を多段階に表現したものをグレースケールという。 2段階はモノクロという。通常256段階(8ビット)あれば 十分スムーズな階調に感じられる。

インデックス画像

最大の色数を予め定め,表現したい画像に高頻度で現われる色を その色数以内で選んで表現する画像。パレットのように数の決まった 枠があり,その枠内に任意の色を当てはめ,実際の画像の各点の色は パレットの枠番号(インデックス)を割り振っていく。色数256にしても 画像によっては色の再現性が高く,圧縮率も高くなる。 グラデーションのないロゴ画像などに向いている。

RGB CMY 加色法 減色法

参考文献

画像保存フォーマット

静止画像

PNM - Portable aNy Map

Jef Poskanzerが考案し,Pbmplusで実装した極めて汎用的な 画像保存形式。PNMは以下の3形式の集合的呼称。

PBMBitmap白黒二値画像(モノクロ)
PGMGraymapグレースケール
PPMPixmapカラー画像
BMP

Windows Bitmap。Windowsの標準的画像表現形式。 圧縮なしで生成されることが多く, ファイルサイズが大きくなりがちである。 「ビットマップ」というとドットごとに画像を表す 一般的な画像形式と混同するので, BMP(びーえむぴー)と呼ぶのがよい。

JPEG

Joint Photographic Experts Group の略。RGB各8ビットの カラー画像を非可逆圧縮する(可逆オプションもある)。 デジタルカメラ画像やWeb利用の画像形式として一般的である。

PNG

Portable Network Graphics の略で,Web配付などネットワーク での利用を主眼とした画像形式。色表現としてグレースケール(最大16ビット), RGB(各色8〜16ビット),インデックス(8ビット)が利用できる。

GIF

インデックス画像。アイコンなどを軽量に作るのに適している。 かつてアメリカ合衆国Unisys社の特許主張問題で使用回避する運動が起こり, PNG普及の切掛となった。現在は特許が失効している。 アニメーションGIF以外では積極的な利用理由に欠ける。

TIFF

Tagged Image File Format の略で, 画像データ自身に画像の符号化形式をタグとして埋め込み, 複数の表現形式を内包する画像形式。BMPやPNGが一般化する前は 可逆圧縮の一般的な形式として用いられた。

SVG

Scalable Vector Graphics の略で,画像を点で表す ビットマップ表現ではなく,画像をベクトル形式で表す。 表記はXMLによる。拡大しても滑らかさが損なわれない。

また,GIMPで編集する場合,レイヤや編集情報を含むGIMP固有の 保存形式 XCF が利用できる。編集の続きをする可能性があるものは XCF 形式で保存する。実際には xz 圧縮を施した .xcf.xz で保存する。 ファイル保存時にファイル名の拡張子を .xcf.xz にするだけでよい。

GIMPでは,編集画像をGIMP固有形式に書き出すことを「保存」, JPEGやPNGのような汎用画像形式に書き出すことを「エクスポート」と 呼んでそれぞれ区別する。

GIMPの基本用語

キャンバス

画像を編集する領域のこと。画像にするときは最終的に この領域の広さのものが保存される。

レイヤ

キャンバス上に重ねて置くことのできる1枚の画像書き込みシート。 アルファチャンネルを付加して段階的透明にすることもできる。

ダイアログ

各種操作ツールのパラメータを入力するための対話セット画面のこと。

ドック

画像編集ではないウィンドウで,ダイアログを好きな組み合わせで 詰め込むことができる。ダイアログを別ウィンドウのドッグにドラッグ すると「ドッキング」できる。

パス

ベジエ曲線によって作成された画像上の軌跡のこと。 その軌跡に沿って描画したり,軌跡で囲まれた部分と選択範囲を 相互変換したりできる。パスはレイヤと同じように1つの画像上に 複数セット持つことができ,xcf形式で保存すれば将来の編集時に 持ち越せる。

GIMPの基本操作

レイヤ

C-l でレイヤダイアログを出す。

編集

頻出操作はキー操作を覚える。

アンドゥC-z
リドゥC-y
カットC-x
コピーC-c
ペーストC-v
新規にペーストS-C-v

操作対象は選択範囲となる。

領域選択

選択方式

矩形選択 R(Rectangle)

矩形(長方形)で領域選択する。Shiftを押しながらドラッグで選択範囲追加。 Ctrlを押しながらドラッグで選択範囲減算。 Ctrl-Shiftを押しながらドラッグで既存選択範囲との交差部分選択。

ドラッグしてからCtrlで中心拡大, Shiftで正方形(または既存矩形領域と同じ縦横比)

楕円選択 E(Ellipse)

楕円形で領域選択する。 ShiftやCtrlを押しながらの関係,ドラッグ後押しの関係は矩形選択と同じ。

自由選択 F(Free)

自由直線・曲線で選択。間欠クリックすると隣接クリック2点間が 直線で結ばれ,ドラッグするとそこがフリーハンド曲線と見なされる。 ShiftやCtrlを押しながらの関係は矩形選択と同じ。

ファジー選択 U(fUzzy)

近似色選択。ShiftやCtrlを押しながらの関係は矩形選択と同じ。

色域選択 Shift-O (cOlor)

クリックした場所と同じ色を持つ領域をすべて選択。 ShiftやCtrlを押しながらの関係は矩形選択と同じ。

電脳はさみ

選択対象物の境界のヒントを与え自動的に境界判断する。 ざっと選んでクイックマスクで調整すると手軽。

前景抽出選択

切り抜きたい前景を選択する。最初に自由選択で前景の外側を選ぶ。 続いてペンツールに変わるので前景の内部をドラッグでなぞる。 ドラッグ解除すると仮選択の青に変わる。 選択もれ領域があればさらになぞる。 選択しすぎ領域はCtrlを押しながらなぞる。 よければ Return で確定。

この選択操作にアンドゥは使えない。

パス(ベジエ曲線)

パスを作成し,それを選択領域に変換する。 分節(パスを決める複数の点)への操作1つ1つが1編集単位であり アンドゥ操作もできる。すべての点を手動設定する必要がある代わりに あとで微調整することができるので, 精度を要する選択にはこれを使う。

選択範囲に対する操作

選択ツールなどで選択した範囲に対する操作。 ショートカットキーの主なものは以下のとおり。

すべて選択C-a
すべての選択を解除S-C-a
選択範囲の反転C-i
クイックマスクS-q

その他の主な操作は以下のとおり。

なお,複雑な選択領域を作成したときには選択(S)メニューの 「チャンネルに保存(C)」で選択情報を保存でき,ファイル保存で xcfに保存すれば,次回編集時にも利用できる。「チャンネルダイアログ」 を表示し,保存しておいた「選択」を右クリックし「チャンネルを選択範囲に (C)」を選ぶ。

クイックマスク

S-qでクイックマスク。選択範囲が透明,それ以外が赤で覆われて見える。 この状態でブラシツールなどを用いて表面を塗る動作をすると以下のようになる。

また S-q で解除するとあたかも赤布でマスキングされた部分が (その度合だけ)非選択状態になった状態の選択領域が現われる。 ここでフィルタ操作などをすると選択領域のみに適用される。 薄くマスキングされたところはその度合だけ適用を逃れる。

主要選択ツールである程度大まかに選択したあと, 微調整をクイックマスクで行なうと楽なことが多い。

選択の練習

表示

画像の編集画面を見やすくするためなどの操作。 素早く操作するために覚えるべきショートカットキーを示す。

さらに縮小表示-,Ctrl+スクロール押回転
さらに拡大表示+,Ctrl+スクロール引回転
直前の拡大率で表示`
100%表示1
200%表示2
400%表示3
800%表示4
1600%表示5
ウィンドウサイズを合わせるC-j
フルスクリーン表示F11

その他,「表示(V)→新しいビュー(N)」を選ぶと,1つの画像を 複数のウィンドウで,独立した倍率で表示できる。全体図と拡大図を 同時に見たい場合に有用。

ツール・ウィンドウ

描画色と背景色のリセットd
描画色と背景色の交換x
ツールボックスの出し入れTab

カラーバランス色のバランスを変更する。
色相-彩度 色相・輝度・彩度を調整する。
  • 色相を調整 - 緑の葉を赤に…など

    Image of Bleach Bypass Image of Bleach Bypass

  • 輝度を調整

    Image of Bleach Bypass Luminance adjusted

  • 彩度を調整

    Image of Bleach BypassSaturation adjusted

着色 単色に着色(セピア風等)

Original Image Colorized

色相=260,彩度=15,輝度=20

明るさ・コントラスト 明るさとコントラストを調整する。
明るさ
-100±0+100
Brightness -100 Brightness +-0 Brightness +100
コントラスト
-100±0+100
Contrast -100 Contrast +-0 Contrast +100

「明るさ」は入力に対する出力範囲を上下にずらす。 「コントラスト」は入力の幅に対して一定倍率を掛けた出力とする。 いずれも少しだけ明るさを変えたいときに手軽だが,バランス確保は難しい。 よりスムーズに仕上げるには「レベル」または「カーブ」で ヒストグラムを見つつ調整する。

しきい値任意のしきい値でモノクロ画像に変換する。 スキャナ取り込み文字を2値画像にするなど。
レベル入力レベルと出力レベルを調整する。 逆光写真の暗部を持ち上げたいときなどは これか下記のトーンカーブを用いてある程度修正できる。
トーンカーブ 入力レベルと出力レベルをカーブで調整する。 上の例の写真を トーンカーブで調整すると以下のようになる。

Original Image Adjusted with tone-curve

ポスタリゼーション 色数を減らしてポスター化 Postalization
脱色 色を抜く。 Desaturate
階調の反転 ネガポジ反転する。 Inverted Image
明度の反転 明度を反転する。 Value Inverted Image
自動補正:
  • 平滑化(E) - すべての色の分布を均等に(隠れている色が見える)

    white balance(before) white balance(auto)

  • ホワイトバランス(W)

    white balance(before) white balance(auto)

色要素:
  • チャンネルミキサー(X) - RGBの特定色の入力を別の色の出力へ。 たとえば緑を赤に変えるなど。

    Original Image Channel mixer

    出力チャンネル「赤」に対し,入力は赤=100,緑=150。

  • チャンネル分解(D) - RGBの3枚のレイヤに分解する
  • チャンネル合成(O) - 分解されたレイヤから画像を合成する
カラーマッピング:
  • エイリアンマップ(A) - 三角関数を用いて画像の色マップを 置き換える。

    Alien map

  • カラーマップ回転(R) - 特定範囲の色相を回転させて置き換える。 緑の草を枯れ草にするなど。

    Original Image Rotate Colormap

    回転前 開始位置=30°,終了位置=150°
    回転後 開始位置=10°,終了位置=60°(単位は度)

  • グラデーションマップ(G) - ツールボックスで選択中のグラデーション パターンに色をマップする。例として Pastel Rainbow PastelRainbow パターンを用いたものを示す。

    Gradient map

  • サンプル色付け(S) - グレースケール画像に,別のカラー画像を サンプルとした色付けを行なう。

    変換元の画像: Grayscale Image(ターゲット画像)
    サンプル画像: Color Sample Image(ソース画像)
    マップ後画像: Image

    手元に白黒しかない「ターゲット画像」があるときに, 似たような色合であろう写真を探し「ソース画像」とする。 サンプル色付け機能で2つの画像を指定し,「ソース色の取得」 をしつつ入出力レベルのスライダで微調整する。 入力レベル 0, 1.11, 255 としたのが上の例。
    このあと「色相・彩度」で彩度を上げると鮮やかな緑になる。

  • パレットマップ(P) - 現在のパレットダイアログの色をマップする。
  • 色交換(C) - 画像中の指定した色を別の色に変更する

    元画像: Koeki-u Logo
    薄い水色を白に変換: Koeki-u Logo
	   white

色の情報 ヒストグラムなどの色情報を提示する。
RGB最大値 色を純粋な赤・緑・青に Maximum RGB
フィルターパック 色相・彩度・明度を対話的に変更する(たのフィルタツールの 統合版的位置付け)。
ホット テレビ画面に写すときに問題となりそうな画素を修正する。
レティネックス 暗めで判別しにくい画像を判別しやすくするアルゴリズムを適用する。

Original Image Retinex

色を透明度に 指定した色を透明にする。

元画像: Original Image
上のレイヤに被せるグラデーション: Gradient for Alpha
「白」を透明度に: Alpha applied Image

単色塗り 特定の色の階調塗りに変える。「着色」のお手軽版。

フィルタ

元画像(画像クリックで原寸)

original image

ぼかし(Blur)

ぼかし(B) blur
ガウシアンぼかし(G) gauss-blur
タイル可能ぼかし(T) tile
モーションぼかし(M) 直線: motion-linear 回転: motion-round 拡大: motion-zoom
モザイク処理(P; Pixelize) pixelize
選択的ガウスぼかし(S) selective

強調(H; enHance)

このうちアンシャープマスクの例を示す。

flowerflower

変形(D; Distorts)

元画像(画像クリックで原寸)

ずらし(Shift) shift
エンボス(Emboss) バンプマップ: Emboss bumpmap エンボス: Emboss Emboss
カーブに沿って曲げる(Curve bend) Curve bend
ビデオ(Video) Video
ブラインド(Blinds) Blinds
ページめくり(Pagecurl)
(めくり部分を透明化するためこれのみPNG)
Pagecurl
モザイク画(Mosaic) Mosaic
レンズ効果(apply Lens) Apply Lens
レンズ補正(Lens Distortion)

レンズごとの歪曲を補正する

Lens distortion(before)Lens distortion(after)
一行おきに消す(Erase every other row) Erase every other row
渦巻きと吸い込み(wHirl and pinch) Whirl and pitch
極座標(Polar coordinates) Polar coordinates
新聞印刷(news prinT) Newsprint
対話的歪め(IWarp)
(GIMP2.10からはメインのツール→変形→ワープ変形にある

iwarp

歪む過程をアニメーションにもできる

波(Waves) Waves
波紋(Ripple) Ripple
風(Wind) Wind
明度伝搬(Value propagate) Value propagate

照明と投影(L; Light and Shadow)

グラデーションフレア(Gradient flare) Gradient flare
ライト効果(Lighting) Lighting
レンズフレア(Lends flare) Lends flare
超新星(superNova) Supernova
Xach効果(Xach-effect) Xach-effect
ドロップシャドウ(Drop shadow)
(PNG)
Drop shadow(before)Drow shadow(after

ノイズ(N; Noise)

HSV HSV
RGB RGB
ごまかす(Slur) Slur
つまむ(Pick) Pick
拡散(spRead) Spread
浴びせ(Hurl) Hurl

輪郭抽出(T; edge-deTect)

ガウス差分(Difference of Gaussians) Difference of Gauss
ソーベル(Sobel) Sobel
ネオン光彩(Neon) Neon
ラプラス(Laplace) Laplace
輪郭(Edge) Edge

汎用(G; Generic)

合成(O; cOmbine)

芸術的効果(A; Artistic)

GIMPressionist(G)

gimpressionist-cubism

様々な芸術的効果を適用する。この例はキュービズム。
ガラスタイル(Glass Tile) Glass tile
キャンバス地(Apply canvas) Apply canvas
キュービズム(Cubism) Cubism
プレデター(Predator) Predator
ヴァン ゴッホ風(Van gogh) Van Gogh
写真コピー(Photocopy) Photocopy
柔らかい発光(Softglow) Softglow
織物(Weave) Weave
覆布化(Clothify) Clothify
漫画(caRtoon) Cartoon
油絵化(oiliFy) Oilify

装飾(D; Decor)

コーヒーの染み(Coffee stain) Coffee stain
スライド(Slide) Slide
ファジー縁取り(Fuzzy border) Fuzzy border
ベベルの追加(bEvel) Bevel
角丸め(Round corners) Round corners
古い写真(Old photo) Old photo
枠の追加(Border) Border

マップ(M; Map)

ずらしマップ(Displace) Displace
オブジェクトにマップ(map Object) map to Sphere
シームレス化(Seamless) Seamless
フラクタルトレース(Fractal trace) Fractal trace
ワープ(Warp) Warp
幻(Illusion) Illusion
紙タイル(Paper tile) Paper tile
小さくして並べる(Small tiles) Small tiles
並べる(Tiles)
(元画像より大きく整数倍にする)
Tiles(実際は3x3の大きさ)

下塗り(R; Render)

主に何もないところにパターン画像を作成する。 雲やプラズマのようなパターンを生成する。

参考: 下塗りフィルター

ソリッドノイズの上か下に好きな色で塗りつぶしたレイヤを重ねて 不透明度をいじってみる。

また,メニューの「ファイル(F) → 画像の生成(T) → パターン(P)」から 選べる様々なパターンも面白い背景パターンとして使える。

ウェブ(W; Web)

クリッカブルマップを作れる「イメージマップ」エディタが起動できる。

ImageMap Editor

  1. 左の矩形選択,円選択,多角形選択をつかって領域を決める。多角形選択 は最後の点でダブルクリックする。領域設定ウィンドウが出るので, リンク先URL(ファイル名)を入力してOKを押す。

  2. 必要な個数の領域と,ジャンプ先URLを指定する。

  3. イメージマップエディタのメニューから「表示」→「ソース」 を選び必要なHTMLソースを表示する。

現われたソースを別の HTML 文書内にコピーする。 マップファイルの内容は概ね以下のとおりである。

<img src="名称未設定" width="259" height="250" border="0" usemap="#map" />

<map name="map">
<!-- #$-:Image map file created by GIMP Image Map plug-in -->
<!-- #$-:GIMP Image Map plug-in by Maurits Rijk -->
<!-- #$-:Please do not edit lines starting with "#$" -->
<!-- #$VERSION:2.3 -->
<!-- #$AUTHOR:HIROSE Yuuji -->
<area shape="poly" coords="118,42,116,67,165,97,191,85,214,77,245,93,247,121,234,130,190,123,153,118,138,120,101,120,98,111,92,101,88,109,77,114,61,105,47,78,66,73,81,62,70,50,63,19,98,29" alt="ほげだっせ" href="hoge.html" />
<area shape="poly" coords="196,174,176,169,153,164,150,178,149,193,148,213,161,212,164,198,178,192,204,189" alt="ふー" href="foo.html" />
</map>

このうち,img src 指定はマップを作成した画像ファイルの名前に置き換える。 また,usemapとそれに対応するmapのname指定は他と区別できる 同じ単語にする(そのHTMLページ内でクリッカブルマップが 1個しかないならデフォルトの "map" のままでよい。

それで作成した例を示す。次の画像にマウスを合わせ,マウスポインタの 形状の変わるところをクリックしてみよ。

赤はげさんのプロフィール 青はげさんのプロフィール 最初はグー,じゃんけんぽん

アニメーション(I; anImation)

画像クリックで動画へ。

ブレンド(Blend) Animation Blend
回転する球体(Spinning globe) Animation Spinning Globe
波(Wave) Animation Wave
波紋(Rippling) Animation Rippling

写真整形処理

リサイズ

デジタル撮影した写真やスキャンした画像などはピクセルサイズが大きい。 その画像の最終出力先を考慮して適切なサイズにリサイズする。

トリミング

アスペクト比固定

水平(回転)

斜めになっている写真は,[回転]ツールで調整する。その後, レイヤが斜めになるのでトリミングをして矩形画像に修正する。

明るさ/コントラスト/トーンカーブ

暗部をもちあげ,明部はスムーズなままに。

最終出力のサイズ

写真を印刷する場合,出力用紙の縦横比と合わせるのが望ましい。 一般的な印画紙サイズとして,L版(89x127),はがき(100x148), 2L版(127x178),6切り(203x254),ワイド6切り(203x305)の寸法を 意識した縦横比でトリミングするとよい。

※参考: 写真サイズ一覧

テーマ別画像編集法

ホワイトバランスの調整

カメラのオートホワイトバランスは新しい機種ほど優秀で, 自然な色合に写る割合が多い。しかし光源によっては色が大きく偏る。 またプリセットホワイトバランスを間違えて設定しているとかなり 不自然な色に写る。

たとえば,以下の写真はホワイトバランス「曇天」のまま, 白色蛍光灯下で撮ったものである。

white balance cloudy

後で気付いても,RAW形式を残していない場合はカメラでは修正できない。 GIMPでは,自動判別によるものと,白・黒・グレーを指定した マニュアルホワイトバランス調整ができる。

メニュー「色(C)→自動調整(A)→ホワイトバランス(W)」で即座に 調整される。

Auto whiteblance by GIMP

白目がしっかり白になっているが,少しどぎつい色になっている。

メニュー「色(C)→レベル(L)」のダイアログを出し, 自動調整(A)ボタンの右にある「黒点を設定」,「グレー点を設定」, 「白点を設定」のうち,グレー点を設定を選び,画像の白目の部分を クリックすると以下のように調整される。

Gray specified whitebalance by GIMP

実際の写真には,完全な黒,完全な白はほとんどないので, 色彩のない部分を選んで「グレー点を設定」にすると自然な明るさで ホワイトバランスが取れる。

yuuji(atmark)e.koeki-u.ac.jp