Python Program Introduction Site

マイペースで真の実力を

2021.04.02

2 comments

短期間に決まった内容で、受け身の状態で教えてもらうより
期間を決めずに自分のペースでその時の課題を自力でクリアー出来るまでスキルアップしていく

その根っこは「自ら考えるコト」です。
カギになるものが何か?
それは、どういうキーワードで検索し見つけ出すか?
この繰り返しです。

ただ、これだけでは答えが見つけ出せないことも当然あります。
そのことだけを追うのではなく、関連したことからもヒントや答えそのものが得られることもあります

今回紹介するのは、私が魚眼レンズで人物を覗いたらどう見えるのか?

もちろん答えではありません。
私だったら、こう見えたら面白いと思った内容のプログラムです。

魚眼(レンズ)そのものを検索しても答えは得られませんでした。

視点を変えて、正方形を円形に変形するプログラムはないか?
に注目したところありました。

それを参考にしたのが以下のプログラムです。
画像の大きさによって数値は変わって来ますが、基本は同じです。
(plt.tick_params(color=’white’)で目盛りを消しておいた方がよかったか?)

コード

“””
from PIL import Image
import matplotlib.pyplot as plt

#画像の読み込み
beautiful_view = Image.open(“lenna.png”)

#画像を表示して確認
plt.imshow(beautiful_view)

#画像のリサイズ
small_beautiful_view = beautiful_view.resize((255, 255))

#リサイズした画像を表示して確認
plt.imshow(small_beautiful_view)

#リサイズした画像を名前をつけて保存
small_beautiful_view.save(“lenna2.png”)
“””

import matplotlib.pyplot as plt
import numpy as np
import cv2
import math
s = 1
# load image
img = cv2.imread(‘lenna2.png’)
#img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# show image with matplotlib
pix = img.shape[0]
x = np.linspace(-1,1,pix+1) # define square
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.gray()
import sys
# point is distance from the viewpoint.
plt.figure(figsize=(5,5))
for i in range(pix):
  sys.stdout.write(str(i))
  sys.stdout.write(” “)
  for j in range(pix):
   p=pix/2
   q=pix/8
   L1 = p / (np.sqrt(q**2 + (i-pix/2)**2 + (j-pix/2)**2))
   L2 = p / (np.sqrt(q**2 + (i+1-pix/2)**2 + (j-pix/2)**2))
   L3 = p / (np.sqrt(q**2 + (i+1-pix/2)**2 + (j+1-pix/2)**2))
   L4 = p / (np.sqrt(q**2 + (i-pix/2)**2 + (j+1-pix/2)**2))
   A = np.array([[L1, 0, 0, 0], [0, L2, 0, 0], [0, 0, L3, 0], [0, 0, 0, L4]])
   B = np.array([x[i],x[i+1],x[i+1],x[i]])
   C = np.array([x[j],x[j],x[j+1],x[j+1]])
   tx = np.dot(A, B)
   ty = np.dot(A, C)
   clr_b = np.double(img[ pix – j – 1 , i,0])/256
   clr_g = np.double(img[pix – j – 1 , i,1])/256
   clr_r = np.double(img[pix – j – 1 , i,2])/256
   plt.fill(tx,ty,color=(clr_r,clr_g,clr_b))
plt.gca().set_aspect(‘equal’, adjustable=’box’)
sc = 1.1
plt.xlim(-s*sc,s*sc)
plt.ylim(-s*sc,s*sc)
plt.savefig(“gyogan.png”)
plt.show()

こういったプログラミングの勉強をしたい。
限られた時間で、結構高いお金を払って
就職活動のためだけにプログラムを勉強するのではなく
日々の自分お仕事や趣味のためにもいかせる
「本物の力を付ける勉強がしたい」
という方は是非以下の講座やスクールを受講すると良いと思います。
まずは、気軽に問い合わせてみてください。

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

python3X