今回は久しぶりに
画像加工で遊んでみました。
解説動画はこちら
ソースコードはこちら
実行していただくと

こんな感じでメニューが出るようになっています。
このプログラムの直下にあるimgフォルダの中の
画像を参照するようにしているので
画像を用いる際はfiles変数の右の
ファイル名などを変更して下さい。
実行後は画像名をクリックすると
画像が切り替わります。
x,yは横、縦方向の画像の歪み度を変更します。
大きい数値の方が歪むようになります。
どんな感じになるかと言うと



かなり別人になるかなーと思いますが
若干元の人の特徴が残っているのが
面白いかなーと思います。
是非遊んでみて下さい。
今回はこれまでです
それでは。
画像加工で遊んでみました。
解説動画はこちら
ソースコードはこちら
import numpy as np
import cv2
import math
from ipywidgets import interact, IntSlider , Select
import matplotlib.pyplot as plt
%matplotlib inline
x1 = IntSlider(value=1, min=1, max=20, step=1, description='x:',)
y1 = IntSlider(value=1, min=1, max=20, step=1, description='y:',)
files = ['kurochan.jpg','nadaru.png','inachan.jpg','ayase.jpg','gakky.jpg']
selected = Select(description='画像', options=files, rows=5,)
def show_plot(col1, col2 , col3):
img = cv2.imread('img/' + col3)
(h, w, c) = img.shape
flex_x = np.zeros((h,w),np.float32)
flex_y = np.zeros((h,w),np.float32)
for y in range(h):
for x in range(w):
flex_x[y,x] = x + math.sin(x/30) * col1
flex_y[y,x] = y + math.cos(y/30) * col2
dst = cv2.remap(img,flex_x,flex_y,cv2.INTER_LINEAR)
dst = cv2.cvtColor(dst , cv2.COLOR_BGR2RGB)
plt.figure(figsize=(10,10))
plt.tick_params(labelbottom=False,labelleft=False,labelright=False,labeltop=False)
plt.imshow(dst)
plt.show()
interact(show_plot, col1=x1, col2=y1 , col3 = selected)
実行していただくと

こんな感じでメニューが出るようになっています。
このプログラムの直下にあるimgフォルダの中の
画像を参照するようにしているので
画像を用いる際はfiles変数の右の
ファイル名などを変更して下さい。
実行後は画像名をクリックすると
画像が切り替わります。
x,yは横、縦方向の画像の歪み度を変更します。
大きい数値の方が歪むようになります。
どんな感じになるかと言うと



かなり別人になるかなーと思いますが
若干元の人の特徴が残っているのが
面白いかなーと思います。
是非遊んでみて下さい。
今回はこれまでです
それでは。

コメントする