程序生成的干净背景文字图片,想达到自然拍照一样有光线阴影。
尝试一种方法实现添加阴影到图片。

思路

阴影是光线变暗,就是让阴影区像素值乘以一个系数,减小当前值造成阴影效果(可能不自然,也就这水平了)
那么怎么设置这个系数来达到自然拍照时的渐变阴影呢?
那就是找一个纯白背景,制造一些光线阴影,拍照。
拍到的阴影图作为系数来源,除以255(可以根据拍摄现场光线适当调小这个数值)
得到的矩阵就是想要的简单系数矩阵,剪切相同尺寸有 点乘要添加阴影的图片就好了
可以resize达到丰富的匹配效果。

def yy2imgBin(imageBin, base_masks):img = cv2.imdecode(np.frombuffer(imageBin, dtype=np.uint8), cv2.IMREAD_ANYCOLOR)if 3 == len(img.shape):base_mask = base_masks[1]else:base_mask = base_masks[0]height, width = img.shape[:2]base_mask = cv2.resize(base_mask, (max(width * 2, 512), max(height * 3, 512)), interpolation=cv2.INTER_AREA)H, W = base_mask.shape[:2]start_y = random.randint(0, H - height)end_y = start_y + heightstart_x = random.randint(0, W - width)end_x = start_x + widthmask = base_mask[start_y:end_y, start_x:end_x]mask_img = img * mask_, imageBin = cv2.imencode(".jpg", mask_img)return imageBindef yy2img(img, base_mask):height, width = img.shape[:2]base_mask = cv2.resize(base_mask, (max(width * 2, 512), max(height * 3, 512)), interpolation=cv2.INTER_AREA)H, W = base_mask.shape[:2]start_y = random.randint(0, H - height)end_y = start_y + heightstart_x = random.randint(0, W - width)end_x = start_x + widthmask = base_mask[start_y:end_y, start_x:end_x]mask_img = img * maskreturn mask_img.astype(np.uint8)if __name__ == "__main__":base_mask3 = cv2.imread("dataset/yinying01.jpg", 1)base_mask1 = cv2.imread("dataset/yinying01.jpg", 0)H, W = base_mask1.shape[:2]print(H, W)if 512 > min(H, W):sys.exit()base_mask1 = base_mask1 / 255.0base_mask3 = base_mask3 / 255.0img = cv2.imread("dataset/img_hor00000003.jpg",1)img = yy2img(img, base_mask3)img2 = cv2.imread("dataset/img_hor00000003.jpg",0)img2 = yy2img(img2, base_mask1)with open("dataset/img_hor00000003.jpg", "rb") as f:imageBin = f.read()imageBin = yy2imgBin(imageBin, (base_mask1, base_mask3))

感觉应付简单的AI数据集可以凑合用了,至于高清图啥效果,我没试

Python尝试给扫描件添加自然阴影相关推荐

  1. 用python提取发票扫描件常用的10多个发票信息保存到excel表

    用python提取发票扫描件常用的10多个发票信息 #输出所有文件和文件夹 如何将发票扫描将中常用的10-20个信息提取到excel表格中,用python提取是不错的方法. 1.用python提取发票 ...

  2. 【再也不怕pdf转换了】使用Python实现PDF扫描件生成DOCX或EXCEL

    1.问题描述 应项目需求需要获取PDF扫描文件的内容,但寻遍整个网络能达到这种功能的产品,都要会员充值.苦于囊中羞涩也只好编写功能代码来实现了. 如PDF中表格图片图-1效果生成图-2 图-1 图-2 ...

  3. Python自动化:提取扫描件中的文字

    前言 扫描件一直受大众青睐,任何纸质资料在扫描之后进行存档,想使用时手机就能打开,省心省力.但是扫描件的优点也恰恰造成了它的一个缺点,因为是通过电子设备扫描,所以出来的是图像,如果想要处理文件上的内容 ...

  4. 使用python在实现图片(包括扫描件的图片类pdf)转换成word文档过程中的常见问题

    pdf有两类,一类是别人用word转pdf,你想转过来那种,带有光标那种,计算机能轻松识别,转换相对简单很多.第二类,即图片类pdf,也就是平常工作中看到的各种扫描件,它的识别相对要复杂一些,但又常常 ...

  5. 解决如何为扫描件图片PDF添加页眉页脚页码日期的问题

    前言:在日常办公中,会面临这样的情况:需要将几份盖章的扫描件整合到一个文档中,并编制页眉/页脚/页码.普通的word文档,可以直接添加页眉页脚.页码,并通过"另存为..."pdf格 ...

  6. 基于OpenCV4.x + Python3.7的文件扫描件切边实践

    之前用Matlab做图像较多,最近准备学习用opencv和python进行图像处理,并就网上的实际案例进行了练手,其中的一篇扫描件切边案例是:opencv之案例实战-扫描件切边.仅当作学习,不喜勿喷! ...

  7. pdf 加深 扫描件_为什么PDF文档不能像Word文档一样随便编辑?如何免费将PDF转换为Word?...

    PDF文档是一种非常难编辑的文档,有时候我们需要编辑或者复制PDF文档里面的内容,把PDF文档转换为Word就是我们最佳的选择.为什么PDF文档这么难编辑?我们怎么免费把PDF文档转换为Word文档? ...

  8. python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...

    PyQt5动态(可拖动控件大小)布局控件QSplitter简介 PyQt还提供了特殊的布局管理器QSplitter.它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用 ...

  9. wxpython制作表格界面_[Python] wxPython 菜单栏控件学习总结(原创)

    1.总结 1.大体创建过程 1.创建一个 菜单栏 : menuBar = wx.MenuBar() 相当于这个白色地方,没有File这个菜单 2.创建 菜单 : fileMenu = wx.Menu( ...

最新文章

  1. cad细等线体不显示_CAD打印文字不显示?很多人不知道这个知识点!
  2. Python中hasattr() getattr() setattr() 函数的使用
  3. Linux和Windows下计算文件的Hash值
  4. IOS创建静态库Cocoa Touch Static Library
  5. java打包-exe文件-最终以setup形式发布的解决之道
  6. 重归理性 国内SOA平台期待价值提升
  7. 淘宝发布宝贝提示“您的消保保证金额度不足,已启动到期保障”
  8. 计算机xp怎么做备份,如何备份xp系统电脑所有系统文件
  9. java山地车 故障,山地车骑行常见的10大问题及解决方案
  10. Python运行报错most recent call last
  11. 平面设计必须知道的尺寸列表
  12. Win7一键还原系统的方法【系统天地】
  13. Android Q 开机启动流程
  14. 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功
  15. 优秀的免费高清图片素材网站推荐
  16. 在资深的幻游科技棋牌开发公司,领悟到的棋牌开发分享
  17. ubuntu18.04 设置字体样式, 调整字体大小
  18. Styled-Components
  19. word2003流程图变成图片_Word中流程图怎么画 手把手教你制作!
  20. 如何面试Java中级开发(16k)试题讲解和Java学习

热门文章

  1. 解决虚拟机下光标闪烁问题
  2. 韦东山学习笔记——UART(串口)的使用
  3. 多平台epub阅读器分享
  4. HBase(2):HBase数据模型
  5. Uncaught TypeError: Cannot read properties of undefined (reading ‘_modulesNamespaceMap‘)
  6. FM模型及其在推荐系统中的应用
  7. 嵌入式设备和固件中的自动漏洞检测(一):概览
  8. ieg技术总监_干货!从程序员到技术总监,大牛内部分享的资料
  9. 程序员计算机的b怎么换算,在计算机中,一个机器字是由几b组成的?
  10. 高考志愿填报很纠结?这款志愿填报软件来解救大家!