gpt4 book ai didi

python - 指纹疤痕/折痕产生器

转载 作者:行者123 更新时间:2023-12-02 17:56:46 25 4
gpt4 key购买 nike

我们目前正在研究神经网络,以估计指纹的疤痕/折痕部分。首先,我们需要“变形”指纹图像以创建数据集。我们确实创建了python脚本,该脚本会在随机位置上插入白色圆圈/线条/椭圆,如下图所示(左一个在其格式错误之前,中间的一个在格式错误之后,而第三个则是所需的输出)。
Before After Desired output

def create_cicles(image):
height, width, channels = image.shape
image = cv2.circle(image, (random.randint(0, width), random.randint(0, height)),
random.randint(1, int(width / 12)),
(255, 255, 255), -1)

def create_lines(image):
height, width, channels = image.shape
cv2.line(image, (random.randint(0, width), random.randint(0, height)),
(random.randint(0, width), random.randint(0, height)),
(255, 255, 255), random.randint(1, 3))

def create_ellipses(image):
height, width, channels = image.shape
image = cv2.ellipse(image, (random.randint(0, width), random.randint(0, height)),
(random.randint(0, int(width/10)), random.randint(0, int(width/10))),
0, 0, 360, (255, 255, 255), -1)
到目前为止,上面是我们能够提供的代码,但是结果还不能令人满意。
有谁知道如何制造出更值得信赖的疤痕/折痕,如最正确的数字所示?感谢您的任何建议。

最佳答案

这是在Python / OpenCV中执行此操作的一种方法。基本上,人们在某些GUI工具(例如Photoshop或GIMP)的黑色背景上绘制白线。然后,指纹和线条图像会模糊并调整对比度。最后,它们被加在一起。
指纹:
enter image description here
行数:
enter image description here

import cv2
import numpy as np
import skimage.exposure as exposure

# read fingerprint image
img = cv2.imread('fingerprint.jpg')

# read lines image
lines = cv2.imread('lines.png')

# blur img and lins
img_blur = cv2.GaussianBlur(img, (0,0), sigmaX=1, sigmaY=1)
lines_blur = cv2.GaussianBlur(lines, (0,0), sigmaX=2, sigmaY=2)

# change brightness/contrast of images
img_bc = exposure.rescale_intensity(img_blur, in_range=(0,255), out_range=(50,230))
lines_bc = exposure.rescale_intensity(lines_blur, in_range=(0,255), out_range=(0,180))

# add together
result = cv2.add(img_bc, lines_bc)

# save images
cv2.imwrite('fingerprint_blur.jpg',img_blur)
cv2.imwrite('lines_blur.jpg',lines_blur)
cv2.imwrite('fingerprint_bc.jpg',img_bc)
cv2.imwrite('lines_bc.jpg',lines_bc)
cv2.imwrite('fingerprint_result.jpg',result)

# show images
cv2.imshow("img_blur", img_blur)
cv2.imshow("lines_blur", lines_blur)
cv2.imshow("img_bc", img_bc)
cv2.imshow("lines_bc", lines_bc)
cv2.imshow("result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()

指纹模糊:
enter image description here
线条模糊:
enter image description here
指纹模糊和对比度调整:
enter image description here
线条模糊和对比度调整:
enter image description here
结果:
enter image description here

关于python - 指纹疤痕/折痕产生器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64524221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com