Unverified Commit 702b15cd authored by tilman's avatar tilman
Browse files

add new bise cone work

parent ad13df6b
......@@ -3,7 +3,7 @@
import cv2
import numpy as np
import numpy.linalg as la
from scipy import stats
from shapely.geometry import Polygon
from lib.bisection import *
......@@ -40,14 +40,25 @@ print("distance",dist1,dist2)
angle = getAngle(a,b,c)
print(np.degrees(angle)) #degress
print(angle) #radians
pd = getBisecPoint(a,b,c)
print(pd)
#pd = getBisecPoint(a,b,c)
pd1, pd2 = getBisecCone(a,b,c,np.deg2rad(30))
img = cv2.imread("/Users/Tilman/Documents/Programme/Python/forschungspraktikum/openpose/examples/media/art/28165_gw.jpg")
#cone = np.array([pd1, pd2, b])
conePoly = Polygon([pd1, pd2, b])
#print(cone)
print(polyToArr(conePoly))
img = cv2.imread("/Users/Tilman/Documents/Programme/Python/forschungspraktikum/openpose/examples/media/art/page_5_item_17_annunci1.jpg")
cv2.namedWindow("test", cv2.WINDOW_NORMAL)
cv2.line(img, pa, pb, (0,255,0));
cv2.line(img, pb, pc, (0,255,0));
cv2.line(img, pb, pd, (0,0,255));
cv2.line(img, pb, pd1, (0,0,255));
cv2.line(img, pb, pd2, (0,0,255));
print(len(img))
print(len(img[0]))
mainCanvas = Polygon(((0,len(img)), (0,0), (len(img[0]),0), (len(img[0]),len(img))))
cv2.drawContours(img, [polyToArr(conePoly)], 0, 255, -1)
cv2.drawContours(img, [polyToArr(mainCanvas)], 0, 255, -1)
cv2.imshow("test", img)
......
#np.array([[[-842,975],[-960,467],[ 536,386],[-842,975]],[[-685, 1038],[-823,535],[ 669,397],[-685, 1038]],[[-524, 1232],[-
from shapely.geometry import Polygon
import numpy as np
import itertools
import cv2
from lib.bisection import *
def overlay_two_image_v2(image, overlay, ignore_color=[0,0,0]):
ignore_color = np.asarray(ignore_color)
mask = (overlay==ignore_color).all(-1,keepdims=True)
out = np.where(mask,image,(image * 0.5 + overlay * 0.5).astype(image.dtype))
return out
bisecCones = np.array([
Polygon([[-719, 1205],
[-952, 207],
[ 536, 386],
[-719, 1205]]),
Polygon([[-554, 1264],
[-824, 275],
[ 669, 397],
[-554, 1264]]),
Polygon([[-371, 1444],
[-738, 486],
[ 760, 460],
[-371, 1444]]),
Polygon([[1473, 1200],
[ 653, 1818],
[ 215, 384],
[1473, 1200]])
])
img_name = "/Users/Tilman/Documents/Programme/Python/forschungspraktikum/art-structures-env/src/images/images_imdahl/Judas_und_Christus.jpg"
img = cv2.imread(img_name)
orig = img.copy()
def overlay_two_image_v2(image, overlay, ignore_color=[0,0,0]):
ignore_color = np.asarray(ignore_color)
mask = (overlay==ignore_color).all(-1,keepdims=True)
out = np.where(mask,image,(image * 0.5 + overlay * 0.5).astype(image.dtype))
return out
intersections = coneIntersections(bisecCones)
for combi in intersections:
#overlay = orig.copy()
overlay = np.zeros((len(img),len(img[0]),3), np.uint8)
color = min(((len(combi)-2)*150,255))
cv2.drawContours(overlay, [polyToArr(intersections[combi])], 0, (color,0,255), -1)
#cv2.addWeighted(overlay, 0.5, img, 1 - 0.5, 0, img)
img = overlay_two_image_v2(img, overlay, [0,0,0])
cv2.namedWindow(img_name, cv2.WINDOW_NORMAL)
cv2.imshow(img_name, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
\ No newline at end of file
......@@ -15,9 +15,21 @@ SHOW_WINDOW = True
SAVE_FILE = False
TRIANGLES = True
BISEC_VECTORS = True
OUT_DIR = 'images/out/first_email/'
BISEC_CONES = True
BISEC_CONE_ANGLE = 40
OUT_DIR = 'images/out/images_imdahl/'
#IN_DIR = "images/first_email/" # images from first email
IN_DIR = "images/first_email/" # images from imdahl
IN_DIR = "images/images_imdahl/" # images from imdahl
## misc functions
def overlay_two_image_v2(image, overlay, ignore_color=[0,0,0]):
ignore_color = np.asarray(ignore_color)
mask = (overlay==ignore_color).all(-1,keepdims=True)
out = np.where(mask,image,(image * 0.5 + overlay * 0.5).astype(image.dtype))
return out
## misc functions end
params = dict()
#params["model_folder"] = "/Users/Tilman/Documents/Programme/Python/forschungspraktikum/openpose/models/"
......@@ -41,20 +53,42 @@ for img_name in images:
datum.cvInputData = img
opWrapper.emplaceAndPop([datum])
#img = datum.cvOutputData
img = datum.cvOutputData
overlay = img.copy()
#print("poses:"+str(len(datum.poseKeypoints)))
if TRIANGLES:
triangles = [poseToTriangle(pose) for pose in datum.poseKeypoints]
for triangle in triangles:
if triangle is not None:
cv2.drawContours(img, [triangle], 0, 255, -1)
cv2.drawContours(overlay, [triangle], 0, 255, -1)
if BISEC_VECTORS:
bisecVectors= [poseToBisectVector(pose) for pose in datum.poseKeypoints]
bisecVectors = [poseToBisectVector(pose) for pose in datum.poseKeypoints]
for bisecVector in bisecVectors:
if bisecVector is not None:
cv2.arrowedLine(img, trp(bisecVector[1]), trp(bisecVector[0]), (0,0,255), 2);
cv2.arrowedLine(overlay, trp(bisecVector[1]), trp(bisecVector[0]), (0,0,255), 2)
if BISEC_CONES:
bisecCones = [poseToBisectCone(pose, BISEC_CONE_ANGLE) for pose in datum.poseKeypoints]
print([polyToArr(bisecCone) for bisecCone in bisecCones])
# for bisecCone in bisecCones:
# if bisecCone is not None:
# cv2.drawContours(overlay, [polyToArr(bisecCone)], 0, (0,0,255), -1)
# mainCanvas = Polygon(((0,len(img)), (0,0), (len(img[0]),0), (len(img[0]),len(img))))
# for cone in bisecCones:
# if cone is not None:
# mainCanvas = mainCanvas.intersection(cone)
# if not mainCanvas.is_empty:
# cv2.drawContours(overlay, [polyToArr(mainCanvas)], 0, (255,255,0), -1)
intersections = coneIntersections(bisecCones)
for combi in intersections:
#overlay = orig.copy()
overlay = np.zeros((len(img),len(img[0]),3), np.uint8)
color = min(((len(combi)-2)*150,255))
cv2.drawContours(overlay, [polyToArr(intersections[combi])], 0, (color,0,255), -1)
#cv2.addWeighted(overlay, 0.5, img, 1 - 0.5, 0, img)
img = overlay_two_image_v2(img, overlay, [0,0,0])
cv2.addWeighted(overlay, 0.5, img, 1 - 0.5, 0, img)
if SAVE_FILE:
cv2.imwrite(os.path.basename(img_name),img)
if SHOW_WINDOW:
......
images/images_imdahl/Kindermord.jpg

1.15 MB | W: | H:

images/images_imdahl/Kindermord.jpg

665 KB | W: | H:

images/images_imdahl/Kindermord.jpg
images/images_imdahl/Kindermord.jpg
images/images_imdahl/Kindermord.jpg
images/images_imdahl/Kindermord.jpg
  • 2-up
  • Swipe
  • Onion skin
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment