目的
ここまでで,画像を入出力する方法を学んだ.ここでは,画像に簡単な処理を行う方法を学ぶ.
説明
指定した値だけ画素値を変更する
画像を読み込み,指定した値だけ輝度値を変更してみよう.
21行目で画像を読み込み,22行目で画素値を40増やしている.23行目で画素値が255を越える場合には255に,24行目で画素値が0より小さくなる場合には0にし,25行目で符号なし8bit整数型にしている.実行すると以下のように表示され,入力画像より出力画像が明るくなっていることが確認できる.
画素値を反転する
次に,画像を読み込み,画素値を反転してみよう.
19行目で画像を読み込み,20行目で255から入力画像の画素値を引くことで,画素値を反転している.実行すると以下のように表示され,画素値が反転していることがわかる.
画像を左右上下に反転する
画像を読み込み,画像を左右上下に反転してみよう.
20行目で画像を読み込み,21,22行目で,引数で「horizontal」を指定した場合に画像を左右に反転するようにしている.また,23,24行目で,引数で「vertical」を指定した場合に画像を上下に反転するようにし,25,26行目で,引数で「both」を指定した場合に画像を上下左右に反転するようにしている.実行すると以下のように表示され,画像が左右に反転していることがわかる.
画像の一部を抜き出す
画像を読み込み,画像の一部を抜き出してみよう.
24行目で,画像から引数で指定した領域を抜き出している.デフォルトではx座標が210から230,y座標が225から255の領域を抜き出している.実行すると以下のように表示され,指定した領域の画像が抜き出されていることがわかる.
画像の一部を塗りつぶす
画像を読み込み,画像の一部を塗りつぶしてみよう.
27行目で入力画像を出力画像にコピーし,28行目で指定した領域を指定した色で塗りつぶしている.デフォルトでは,x座標が100から220,y座標が80から140の領域を青で塗りつぶしている.実行すると以下のように表示され,指定した領域が指定した色で塗りつぶされていることがわかる.
画像を分割する
画像を読み込み,分割してみよう.
23行目で画像を縦方向に指定した数に分割し,24行目から26行目で横方向に指定した数に分割している.デフォルトでは横方向に3,縦方向に2分割している.実行すると指定した数に分割された画像が表示される.
画像を結合する
画像を2枚読み込み,結合してみよう.
28,29行目で画像を2枚読み込み,30,31行目で引数で「horizontal」が指定されている場合横方向に,32,33行目で引数で「vertical」が指定されている場合縦方向に画像を結合している.実行すると以下のように表示され,2枚の画像が横方向に結合されていることがわかる.
課題
課題0
画像を読み込み,画素値を60だけ増加させよ.
課題1
画像を読み込み,画素値を50だけ減少させよ.
課題2
画像を読み込み,画素値を反転せよ.
課題3
画像を読み込み,画像を上下に反転せよ.
課題4
画像を読み込み,画像を上下左右に反転せよ.
課題5
画像を読み込み,画像の一部を抜き出せ.
課題6
画像を読み込み,画像の一部を塗りつぶせ.
課題7
画像を読み込み,画像を横方向に4・縦方向に3分割せよ.
課題8
画像を2枚読み込み,横方向に結合せよ.
課題9
画像を2枚読み込み,縦方向に結合せよ.