kopia lustrzana https://github.com/jaseg/gerbolyze
Fix positioning of image relative to outline
rodzic
3195cfbb1e
commit
4303421182
11
gerbimg.py
11
gerbimg.py
|
@ -31,9 +31,11 @@ def paste_image(target_gerber:str, outline_gerber:str, source_img:np.ndarray, ex
|
||||||
fg, bg = gerber.render.RenderSettings((1, 1, 1)), gerber.render.RenderSettings((0, 0, 0))
|
fg, bg = gerber.render.RenderSettings((1, 1, 1)), gerber.render.RenderSettings((0, 0, 0))
|
||||||
ctx = GerberCairoContext(scale=scale)
|
ctx = GerberCairoContext(scale=scale)
|
||||||
ctx.render_layer(target, settings=fg, bgsettings=bg)
|
ctx.render_layer(target, settings=fg, bgsettings=bg)
|
||||||
|
ctx.render_layer(outline, settings=fg, bgsettings=bg)
|
||||||
ctx.dump(img_file)
|
ctx.dump(img_file)
|
||||||
|
|
||||||
original_img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
|
original_img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
|
||||||
|
|
||||||
r = 1+2*max(1, int(extend_overlay_r_mil/1000 * scale))
|
r = 1+2*max(1, int(extend_overlay_r_mil/1000 * scale))
|
||||||
target_img = cv2.blur(original_img, (r, r))
|
target_img = cv2.blur(original_img, (r, r))
|
||||||
_, target_img = cv2.threshold(target_img, 255//(1+r), 255, cv2.THRESH_BINARY)
|
_, target_img = cv2.threshold(target_img, 255//(1+r), 255, cv2.THRESH_BINARY)
|
||||||
|
@ -46,7 +48,12 @@ def paste_image(target_gerber:str, outline_gerber:str, source_img:np.ndarray, ex
|
||||||
cv2.imwrite('/tmp/06thresh.png', source_img)
|
cv2.imwrite('/tmp/06thresh.png', source_img)
|
||||||
tgth, tgtw = target_img.shape
|
tgth, tgtw = target_img.shape
|
||||||
padded_img = np.zeros(shape=(max(imgh, tgth), max(imgw, tgtw)), dtype=source_img.dtype)
|
padded_img = np.zeros(shape=(max(imgh, tgth), max(imgw, tgtw)), dtype=source_img.dtype)
|
||||||
padded_img[(tgth-imgh)//2:tgth-((tgth-imgh+1)//2), (tgtw-imgw)//2:tgtw-((tgtw-imgw+1)//2)] = source_img
|
|
||||||
|
offx = int((minx-tminx if tminx < minx else 0)*scale)
|
||||||
|
offy = int((miny-tminy if tminy < miny else 0)*scale)
|
||||||
|
offx += int(grbw*scale - imgw) // 2
|
||||||
|
offy += int(grbh*scale - imgh) // 2
|
||||||
|
padded_img[offy:offy+imgh, offx:offx+imgw] = source_img
|
||||||
|
|
||||||
cv2.imwrite('/tmp/10padded.png', padded_img)
|
cv2.imwrite('/tmp/10padded.png', padded_img)
|
||||||
cv2.imwrite('/tmp/20target.png', target_img)
|
cv2.imwrite('/tmp/20target.png', target_img)
|
||||||
|
@ -55,7 +62,7 @@ def paste_image(target_gerber:str, outline_gerber:str, source_img:np.ndarray, ex
|
||||||
cv2.imwrite('/tmp/30multiplied.png', out_img)
|
cv2.imwrite('/tmp/30multiplied.png', out_img)
|
||||||
cv2.imwrite('/tmp/40vis.png', out_img + original_img)
|
cv2.imwrite('/tmp/40vis.png', out_img + original_img)
|
||||||
|
|
||||||
plot_contours(out_img, target, offx=(tminx, tminy), scale=scale)
|
plot_contours(out_img, target, offx=(min(tminx, minx), min(tminy, miny)), scale=scale)
|
||||||
|
|
||||||
from gerber.render import rs274x_backend
|
from gerber.render import rs274x_backend
|
||||||
ctx = rs274x_backend.Rs274xContext(target.settings)
|
ctx = rs274x_backend.Rs274xContext(target.settings)
|
||||||
|
|
Ładowanie…
Reference in New Issue