-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstitch.py
127 lines (115 loc) · 3.24 KB
/
stitch.py
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# -*- coding: utf-8 -*-
"""
Created on Wed Jan 24 15:54:48 2018
@author: VRIPLAB4
"""
from PIL import Image
import numpy as np
from skimage.transform import AffineTransform
from numpy.linalg import inv
from scipy.misc import toimage
#p1=np.array([646,263])
#p2=np.array([411,251])
#p3=np.array([526,195])
#
#P1=np.array([418,321])
#P2=np.array([188,304])
#P3=np.array([307,252])
#
#T=np.array([[p1[0],p1[1],1,0,0,0],
# [0,0,0,p1[0],p1[1],1],
# [p2[0],p2[1],1,0,0,0],
# [0,0,0,p2[0],p2[1],1],
# [p3[0],p3[1],1,0,0,0],
# [0,0,0,p3[0],p3[1],1]])
#p=np.array([P1[0],P1[1],P2[0],P2[1],P3[0],P3[1]])
#
#Tinv=inv(T)
#res=np.dot(Tinv,p)
#
#rmat=np.reshape(res,(2,3))
#
#im=Image.open('Image1.jpg')
#size=im.size
#
#newmat=np.zeros((size[0]+258,size[1],3))
#
#for i in range(0,size[0]-1):
# for j in range(0,size[1]-1):
# a=im.getpixel((i,j))
# hc=np.array([i,j,1])
# newhc=np.dot(rmat,hc)
# if(newhc[0]>0 and newhc[1]<size[1]-1 and newhc[1]>0 and newhc[0]<size[0]+258-1):
# newmat[newhc[0],newhc[1]]=a
#
##toimage(np.transpose(newmat)).show()
#toimage(np.transpose(newmat)).save('affine.png')
#---------------------------------------------------------------------
P1=np.array([646,263])
P2=np.array([411,251])
P3=np.array([526,195])
p1=np.array([418,321])
p2=np.array([188,304])
p3=np.array([307,252])
T1=np.array([[p1[0],p1[1],1,0,0,0],
[0,0,0,p1[0],p1[1],1],
[p2[0],p2[1],1,0,0,0],
[0,0,0,p2[0],p2[1],1],
[p3[0],p3[1],1,0,0,0],
[0,0,0,p3[0],p3[1],1]])
p1=np.array([P1[0],P1[1],P2[0],P2[1],P3[0],P3[1]])
Tinv1=inv(T1)
res1=np.dot(Tinv1,p1)
rmat1=np.reshape(res1,(2,3))
im2=Image.open('Image2.jpg')
size=im2.size
newmat1=np.zeros((size[0]+258,size[1],3))
for i in range(0,size[0]-1):
for j in range(0,size[1]-1):
a=im2.getpixel((i,j))
hc=np.array([i,j,1])
newhc=np.dot(rmat1,hc)
if(newhc[0]>0 and newhc[1]<size[1]-1 and newhc[1]>0 and newhc[0]<size[0]+258-1):
newmat1[np.int(newhc[0]),np.int(newhc[1])]=a
toimage(np.transpose(newmat1)).show()
toimage(np.transpose(newmat1)).save('affine1.png')
#lab3-----------------------------------------------------------------
#q=np.zeros((600,1058,3))
#im2=Image.open('Image2.jpg')
#im2.show()
#size=im2.size
#
#im3=Image.open('affine.png')
#
#
#for i in range(0,600):
# for j in range(0,800):
# # a=np.array([i,j,1])
# # a1=np.dot(rmat,a)
# # ind1=np.ceil(np.abs(a1[0]))
# # ind2=np.ceil(np.abs(a1[1]))
# b=im3.getpixel((j,i))
# q[i][j]=b
#for i in range(0,600):
# for j in range(258,800):
# a=im2.getpixel((j,i))
# q[i][j+258]=a
#
#toimage(q).show()
#toimage(q).save('Stitched.png')
#-----------------------------------------
q1=np.zeros((600,1058,3))
im2=Image.open('Image1.jpg')
#im2.show()
size=im2.size
im4=Image.open('affine1.png')
for i in range(0,600):
for j in range(0,1058):
b=im4.getpixel((j,i))
q1[i][j]=b
for i in range(0,600):
for j in range(0,258):
a=im2.getpixel((j,i))
q1[i][j]=a
toimage(q1).show()
toimage(q1).save('Stitched1.png')