aboutsummaryrefslogtreecommitdiff
path: root/gerbimg.py
diff options
context:
space:
mode:
Diffstat (limited to 'gerbimg.py')
-rwxr-xr-xgerbimg.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/gerbimg.py b/gerbimg.py
index 14b6cb4..c092df4 100755
--- a/gerbimg.py
+++ b/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))
ctx = GerberCairoContext(scale=scale)
ctx.render_layer(target, settings=fg, bgsettings=bg)
+ ctx.render_layer(outline, settings=fg, bgsettings=bg)
ctx.dump(img_file)
original_img = cv2.imread(img_file, cv2.IMREAD_GRAYSCALE)
+
r = 1+2*max(1, int(extend_overlay_r_mil/1000 * scale))
target_img = cv2.blur(original_img, (r, r))
_, 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)
tgth, tgtw = target_img.shape
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/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/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
ctx = rs274x_backend.Rs274xContext(target.settings)