JES を使用した 4 つの興味深い画像処理手法
JES は、プログラミング領域と独自のコマンド ラインの両方を含むプログラミング環境です。イメージ、ビデオ、およびサウンドの編集に JES を使用できます。
JES を使用して写真を編集するには、さまざまな方法があります。これには、グレースケール フィルターまたはネガティブ フィルターの追加が含まれます。イメージをミラーリングしたり、特定の色を強調したりすることもできます。
グレースケール イメージの作成方法
多くの使いやすい写真編集アプリでは、さまざまな方法で画像を編集できます。これらの 1 つには、グレースケール フィルターの追加が含まれます。JES では、各ピクセルの色を白、グレー、または黒に変更することで、グレースケール フィルタを使用するようにイメージを編集できます。
JES は、Python と非常によく似た Jython プログラミング言語を使用し、同じインデント規則に従います。必要に応じて、初心者向けの便利な Python コマンドを参照して、理解を深めることができます。
- makeGrayscalePicture() という新しい関数を作成します。
def makeGrayscalePicture():
- 新しい関数内で pickAFile() 関数を使用して、ユーザーに画像を選択するように求めます。makePicture() 関数を使用して、選択したファイルから画像オブジェクトを作成します。
file = pickAFile()
pic = makePicture(file) - getPixels() 関数を使用して、選択した画像内のすべてのピクセルの配列を取得します。
pixels = getPixels(pic)
- for ループを使用して、画像内の各ピクセルをループします。
for pixel in pixels:
- for ループ内で、ピクセルの RGB 値を取得します。色の赤、緑、青の値をさまざまな変数に格納できます。
r = getRed(pixel)
g = getGreen(pixel)
b = getBlue(pixel) - 各色の平均値を計算します。これを行うには、赤、緑、青の値を加算し、合計を 3 で割ります。
average = (r + g + b) / 3
- 赤、緑、青の値をすべて同じ値に設定します。これにより、ピクセルが灰色になります。
setRed(pixel, average)
setGreen(pixel, average)
setBlue(pixel, average) - for ループの後、画像を表示します。
show(pic)
- プログラミング領域とコマンド ラインの間にある[プログラムのロード] ボタンをクリックします。
- コマンド ライン領域を使用して関数を実行します。
makeGrayscalePicture()
- ファイル エクスプローラーを使用して画像を選択します。[開く] をクリックします。
- 関数が画像の処理を完了するまで待ちます。新しいウィンドウが開き、新しいグレースケール イメージが表示されます。
ネガ画像の作り方
ネガ画像とは、写真の明るい部分が暗く、暗い部分が明るく見える画像です。この効果は、各ピクセルの赤、緑、青の値を変更することで作成できます。
- makeNegativePicture() という新しい関数を作成します。
def makeNegativePicture():
- 新しい関数内で pickAFile() 関数を使用して、ユーザーに画像を選択するように求めます。makePicture() 関数を使用して、選択したファイルから画像オブジェクトを作成します。
file = pickAFile()
pic = makePicture(file) - getPixels() 関数を使用して、選択した画像内のすべてのピクセルの配列を取得します。
pixels = getPixels(pic)
- for ループを使用して、画像内の各ピクセルをループします。
for pixel in pixels:
- for ループ内で、ピクセルの赤、緑、青の値を取得します。
r = getRed(pixel)
g = getGreen(pixel)
b = getBlue(pixel) - 負の効果を作成するには、RGB スペクトルの色の反対の値を取得します。たとえば、赤の値が 100 の場合、反対の値は 255 – 100、つまり 155 になります。
newRed = 255 - r
newBlue = 255 - g
newGreen = 255 - b - ピクセルの色を新しい赤、緑、青の値に置き換えます。
setRed(pixel, newRed)
setBlue(pixel, newBlue)
setGreen(pixel, newGreen) - for ループの後、画像を表示します。
show(pic)
- プログラミング領域とコマンド ラインの間にある[プログラムのロード] ボタンをクリックします。
- コマンド ラインから makeNegativePicture() 関数を実行します。
makeNegativePicture()
- ファイル エクスプローラーを使用して画像を選択します。[開く] をクリックします。
- 新しいウィンドウが開き、ネガ イメージが表示されます。
画像の特定の色を強調する方法
JES を使用して、イメージの特定の色を強調することもできます。たとえば、各ピクセルの赤の値を 2 倍にして、画像をより赤く見せることができます。
- alterReds() という新しい関数を作成します。
def alterReds():
- 新しい関数内で pickAFile() 関数を使用して、ユーザーに画像を選択するように求めます。makePicture() 関数を使用して、選択したファイルから画像オブジェクトを作成します。
file = pickAFile()
pic = makePicture(file) - getPixels() 関数を使用して、選択した画像内のすべてのピクセルの配列を取得します。
pixels = getPixels(pic)
- for ループを使用して、画像内の各ピクセルをループします。
for pixel in pixels:
- for ループ内で、ピクセルの赤の値のみを取得します。
r = getRed(pixel)
- 赤の値を 2 倍にして、新しい変数に格納します。
enhancedRed = r*2
- ピクセルの赤の値を新しい強化された値に置き換えます。たとえば、ピクセルの元の RGB 値が rgb(100, 50, 50) の場合、新しい値は rgb(200, 50, 50) になります。
setRed(pixel, enhancedRed)
- for ループの後、画像を表示します。
show(pic)
- プログラミング領域とコマンド ラインの間にある[プログラムのロード] ボタンをクリックします。
- コマンド ライン領域を使用して関数を実行します。
alterReds()
- ファイル エクスプローラーを使用して画像を選択します。[開く] をクリックします。
- 新しいウィンドウが開き、編集した画像が表示されます。
イメージをミラーリングする方法
画像を鏡像化するには、画像の左側のすべてのピクセルが右側の反対側のピクセルと正確に一致する必要があります。
これを行うには、背景が白の新しい空の画像を作成します。その後、各ピクセルをコピーして、新しいミラー イメージを作成できます。
- mirror() という新しい関数を作成します。
def mirror():
- 新しい関数内で pickAFile() 関数を使用して、ユーザーに画像を選択するように求めます。makePicture() 関数を使用して、選択したファイルから画像オブジェクトを作成します。
file = pickAFile()
pic = makePicture(file) - 選択した画像の高さと幅を取得します。
width = getWidth(pic)
height = getHeight(pic) - 空の画像を作成するには、makeEmptyPicture() 関数を使用します。空白の画像は、背景が白い画像です。元の画像を左側に、反転した画像を右側に収まるように、幅を 2 倍にします。
mirroredPic = makeEmptyPicture(width*2, height)
- 元のイメージの各 x 座標と y 座標をループする for ループを作成します。for ループ内で、その場所に格納されているピクセルを取得します。
for x in range(0, width):
for y in range(0, height):
originalPix = getPixel(pic, x, y) - 引き続き for ループ内で、同じ x と y の位置にある新しい空白のイメージのピクセルを取得します。これは鏡像の左側になります。
leftMirrorPixel = getPixel(mirroredPic, x, y)
- 元のピクセルの色を新しい画像の左側のピクセルにコピーします。
setColor(leftMirrorPixel, getColor(originalPix))
- 右側も同じようにします。y 座標は同じになります。x 座標は右側から来るため、新しいミラー化された画像の全幅から x 座標を引きます。
rightMirrorPixel = getPixel(mirroredPic, (width*2)-x-1, y)
- 元のピクセルの色を新しい画像の右側のピクセルにコピーします。
setColor(rightMirrorPixel, getColor(originalPix))
- for ループの後、画像を表示します。
show(mirroredPic)
- プログラミング領域とコマンド ラインの間にある[プログラムのロード] ボタンをクリックします。
- コマンド ラインから mirror() 関数を実行します。
mirror()
- ファイル エクスプローラーを使用して画像を選択します。[開く] をクリックします。
- 新しいウィンドウが開き、鏡像が表示されます。
JES を使用したイメージの編集
これで、さまざまな技法を使用して JES で写真を編集する方法が理解できたと思います。写真に適用できる手法はこれらだけではないため、JES で他の可能性をさらに試すことができます。
Python のスキルを向上させたい場合、短くて楽しいプロジェクトは、主要な Python の概念を理解するための優れた方法です。
コメントを残す