忍者ブログ

研究の掃溜ノオト

since 2011/2/13 知能ロボ研究の合間に思ったこととか書いてます。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ガウス分布に従って画像をサンプリング

してみました!
はい、ただ単純にマウスポインタを中心として適当な分散をもつガウシアンによって画像から適当にピクセルをサンプリング。そしてそれを正方形に並べて画像を再構成しました!

なんでこんなモノを作ったかというと人間の目には中心窩というものがありこれを実装して画像処理をしてみたいなーというのが元々の動機です。
簡単に説明すると中心窩というのは網膜の神経細胞がたくさん集まっている所っでそこから離れるとだんだん神経細胞が少なくなっています。実は私たちの目が普段見ている世界はマンションの覗き穴から見ているように歪んでいるのです!それを脳内で適当に処理して普通の景色としてみているのです。

まぁそんなこんなで実装してみたんですが、ちょっと自慢なのはガウシアンでサンプリングした点を正方形に並べるアルゴリズムですかね(・∀・)
そこら辺はソースを見てもらえたらと思います。
簡単に説明するとx軸とy軸でソートしてそれぞれ10組に分けて割当たった(組, 組)を正方形の座標として用いています(^_^;)

実際に正方形に並べた画像です。
7fc7f737.png

うーん、わかりにくい。
興味を持った人はソースを張るので実際に動かしてみてください。
開発環境はPython です。

以下ソース
-------------------------------------------------
import pygame
import random
from pygame.locals import *
 
SCR_W = 500
SCR_H = 400
 
IMG_X = 400
IMG_Y = 300
 
scale1 = 20
 
look = []
for i in range(scale1):
look.append([])
for j in range(scale1):
look[i].append([0,0])
xeye = []
for i in range(scale1*scale1):
xeye.append(0)
yeye = []
for i in range(scale1*scale1):
yeye.append(0)
 
def xfold(val):
if val > IMG_X:
return IMG_X
if val < 0:
return 0
return int(val)
def yfold(val):
if val > IMG_Y:
return IMG_Y
if val < 0:
return 0
return int(val)
def main():
    pygame.init()
    screen = pygame.display.set_mode( (SCR_W, SCR_H) )
    pygame.display.set_caption('Hello pygame')
 
    image = pygame.image.load('img.jpg')
    image = image.convert()
    imagerect = image.get_rect()
 
    while 1:
screen.blit(image, imagerect)
for i in range(scale1*scale1):
xeye[i] = xfold(random.gauss(pygame.mouse.get_pos()[0],30))
yeye[i] = yfold(random.gauss(pygame.mouse.get_pos()[1],30))
xeye.sort()
yeye.sort()
for i in range(scale1):
for j in range(scale1):
look[i][j][0] = xeye[i*scale1+j]
look[i][j][1] = yeye[j*scale1+i]
for i in range(scale1):
for j in range(scale1):
pygame.draw.rect(screen, screen.get_at(look[i][j]),(400+i*5,300+j*5,5,5))
pygame.display.flip()
for event in pygame.event.get():
if event.type == QUIT:
return
if (event.type == KEYDOWN and event.key  == K_ESCAPE):
return
 
if __name__ == '__main__': main()
 
PR

この記事へのコメント

Vodafone絵文字 i-mode絵文字 Ezweb絵文字
管理人のみ閲覧できます
 

この記事へのトラックバック

トラックバックURL

プロフィール

HN: 相馬 豊
所属:KU
連絡先(Twitter): @i-horse
インタビューはこちら

カレンダー

04 2017/05 06
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Twitter

アンケート

マクロミルへ登録

Google Adsence

アクセス解析

リンク

Copyright ©  -- 研究の掃溜ノオト --  All Rights Reserved

Design by CriCri / Photo by momo111 / powered by NINJA TOOLS / 忍者ブログ / [PR]