NihalGazi commited on
Commit
ff3b3c0
·
verified ·
1 Parent(s): 8952854

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -2
app.py CHANGED
@@ -116,13 +116,23 @@ def calculate_delaunay_triangles(rect, points):
116
  def warp_triangle(img1,img2,t1,t2):
117
  if len(t1)!=3 or len(t2)!=3:
118
  return
119
- r1=cv2.boundingRect(np.float32([t1])); r2=cv2.boundingRect(np.float32([t2]))
120
- if r1[2]==0 or r1[3]==0 or r2[2]==0 or r2[3]==0:
 
 
121
  return
 
 
 
 
 
122
  t1r=[(t1[i][0]-r1[0],t1[i][1]-r1[1]) for i in range(3)]
123
  t2r=[(t2[i][0]-r2[0],t2[i][1]-r2[1]) for i in range(3)]
 
124
  mask=np.zeros((r2[3],r2[2],3),dtype=np.float32)
 
125
  cv2.fillConvexPoly(mask,np.int32(t2r),(1,1,1),16)
 
126
  src=img1[r1[1]:r1[1]+r1[3],r1[0]:r1[0]+r1[2]]
127
  M=cv2.getAffineTransform(np.float32(t1r),np.float32(t2r))
128
  warped=cv2.warpAffine(src,M,(r2[2],r2[3]),flags=cv2.INTER_LINEAR,borderMode=cv2.BORDER_REFLECT_101)
 
116
  def warp_triangle(img1,img2,t1,t2):
117
  if len(t1)!=3 or len(t2)!=3:
118
  return
119
+ r1=cv2.boundingRect(np.float32([t1]))
120
+ r2=cv2.boundingRect(np.float32([t2]))
121
+
122
+ if r1[2] <= 0 or r1[3] <= 0 or r2[2] <= 0 or r2[3] <= 0:
123
  return
124
+
125
+ img1_rect = img1[r1[1]:r1[1]+r1[3], r1[0]:r1[0]+r1[2]]
126
+ if img1_rect.size == 0:
127
+ return
128
+
129
  t1r=[(t1[i][0]-r1[0],t1[i][1]-r1[1]) for i in range(3)]
130
  t2r=[(t2[i][0]-r2[0],t2[i][1]-r2[1]) for i in range(3)]
131
+
132
  mask=np.zeros((r2[3],r2[2],3),dtype=np.float32)
133
+
134
  cv2.fillConvexPoly(mask,np.int32(t2r),(1,1,1),16)
135
+
136
  src=img1[r1[1]:r1[1]+r1[3],r1[0]:r1[0]+r1[2]]
137
  M=cv2.getAffineTransform(np.float32(t1r),np.float32(t2r))
138
  warped=cv2.warpAffine(src,M,(r2[2],r2[3]),flags=cv2.INTER_LINEAR,borderMode=cv2.BORDER_REFLECT_101)