我正在尝试使用下面的代码检测图像中身份证的边界。关键是我使用的 gamma 值。我使用 2 或 3 的值(假设我希望卡片在背景中脱颖而出)。我在使用背景较浅或与卡片颜色本身一样浅的照片时遇到问题。请看看下面的图片..第一个是带有深色b/g的原稿,第二个是带有伽玛校正的..与接下来的2个相同。我在我的智慧尽头试图弄清楚我该怎么做处理背景较浅的图片。还粘贴我用来执行伽马校正的代码。请让我知道你们是否可以将我的粗头指向正确的方向:)
import cv2
import numpy as np
import imutils
import math
import sys
img = cv2.imread( sys.argv[1] )
gray1 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
invGamma = 3.0
table = np.array([((i / 255.0) ** invGamma) * 255
for i in np.arange(0, 256)]).astype("uint8")
gray = cv2.LUT(gray1, table)
ret,thresh1 = cv2.threshold( gray, 80, 255, cv2.THRESH_BINARY )
cv2.imwrite( 'LUT.jpg', thresh1 )
_, contours, hierarchy = cv2.findContours(thresh1, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
Run Code Online (Sandbox Code Playgroud)
我的应用程序需要将报告邮寄给客户,因此我需要一种有效的方法将动态模板转换为 pdf 报告(包括通过 chart.js 生成的图像)。我尝试过 pdfkit,但它需要一个 URL(它很可能会在该 URL 上执行 GET,但是模板会在几次 AJAX 调用后生成报告,因此 GET 将只返回带有一些过滤器的普通页面)并且它不包括图像(我猜我可以通过使用 dataToURL 将图表图像转换为 png 并保存在服务器上来解决)。
我在这里看到的唯一选择是保存动态生成的所有数据以及 html 标签,然后在服务器上重新创建文件,然后转换为 pdf。我相信有更好的解决方案。抱歉,如果这看起来很基本,但我的职业不是程序员。