代码拉取完成,页面将自动刷新
"""
@author: Viet Nguyen <nhviet1009@gmail.com>
"""
import argparse
import cv2
import numpy as np
def get_args():
parser = argparse.ArgumentParser("Image to ASCII")
parser.add_argument("--input", type=str, default="data/input.jpg", help="Path to input image")
parser.add_argument("--output", type=str, default="data/output.txt", help="Path to output text file")
parser.add_argument("--mode", type=str, default="complex", choices=["simple", "complex"],
help="10 or 70 different characters")
parser.add_argument("--num_cols", type=int, default=150, help="number of character for output's width")
args = parser.parse_args()
return args
def main(opt):
if opt.mode == "simple":
字符列表 = '@%#*+=-:. '
else:
字符列表 = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. "
字符种数 = len(字符列表)
列数 = opt.num_cols
图片 = cv2.imread(opt.input)
图片 = cv2.cvtColor(图片, cv2.COLOR_BGR2GRAY)
图高, 图宽 = 图片.shape
格宽 = 图宽 / opt.num_cols
格高 = 2 * 格宽
行数 = int(图高 / 格高)
if 列数 > 图宽 or 行数 > 图高:
print("Too many columns or rows. Use default setting")
格宽 = 6
格高 = 12
列数 = int(图宽 / 格宽)
行数 = int(图高 / 格高)
输出文件 = open(opt.output, 'w')
for 行号 in range(行数):
for 列号 in range(列数):
局部图 = 图片[int(行号 * 格高) : min(int((行号 + 1) * 格高), 图高),
int(列号 * 格宽) : min(int((列号 + 1) * 格宽), 图宽)]
输出文件.write(
字符列表[min(int(np.mean(局部图) * 字符种数 / 255), 字符种数 - 1)])
输出文件.write("\n")
输出文件.close()
if __name__ == '__main__':
opt = get_args()
main(opt)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。