1、一般证件照的尺寸有小一寸、一寸、小二寸、二寸、五寸、六寸、七寸(横向)以及身份证照片的大小,用python获取各种尺寸的证件照

2、根据查找的资料,每种尺寸对应的像素大小如下表:

图片

像素大小

小一寸

260x390

一寸

295x413

小二寸

390x567

二寸

413x636

5寸

840x1200

6寸

960x1440

7寸

1680x1200

身份证大头照

358x441

3、图片裁剪

一般而言,修改图片大小用opencv直接resize就ok了,但是问题是resize到特定大小会使照片产生形变,所以必须先对图片进行裁剪。图片要怎么裁剪?裁剪多大?

方法:

(1)计算标准图片的宽高比例ratio1,计算原图的宽高比例ratio2,ratio = w/h

(2)ratio2 >= ratio1,进行左右裁剪,使w变小达到标准ratio1的比例

(3)ratio2 < ratio1,进行下裁剪,使h变小达到标准ratio1的比例(不进行上裁剪就是怕人头被剪到)

(4)resize到标准的尺寸

4、代码

import cv2
class ImageSize:def __init__(self):# 小一寸self._lt_one_inch_w = 260self._lt_one_inch_h = 390self._lt_one_ratio= self._lt_one_inch_w / self._lt_one_inch_h# 一寸self._one_inch_w = 295self._one_inch_h = 413self._one_ratio= self._one_inch_w / self._one_inch_h# 小二寸self._lt_two_inch_w = 390self._lt_two_inch_h = 567self._lt_two_ratio= self._lt_two_inch_w / self._lt_two_inch_h# 二寸self._two_inch_w = 413self._two_inch_h = 636self._two_ratio= self._two_inch_w / self._two_inch_h# 五寸self._five_inch_w = 840self._five_inch_h = 1200self._five_ratio= self._five_inch_w / self._five_inch_h# 六寸self._six_inch_w = 960self._six_inch_h = 1440self._six_ratio= self._six_inch_w / self._six_inch_h# 七寸self._seven_inch_w = 1680self._seven_inch_h = 1200self._seven_ratio= self._seven_inch_w / self._seven_inch_h# ID cardself._id_inch_w = 358self._id_inch_h = 441self._id_ratio= self._id_inch_w / self._id_inch_hdef lt_one_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._lt_one_ratio:ratio_img = self.crop_l_r(img, self._lt_one_ratio, h, w)else:ratio_img = self.crop_d(img, self._lt_one_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._lt_one_inch_w, self._lt_one_inch_h))return resize_imgdef one_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._one_ratio:ratio_img = self.crop_l_r(img, self._one_ratio, h, w)else:ratio_img = self.crop_d(img, self._one_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._one_inch_w, self._one_inch_h))return resize_imgdef lt_two_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._lt_two_ratio:ratio_img = self.crop_l_r(img, self._lt_two_ratio, h, w)else:ratio_img = self.crop_d(img, self._lt_two_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._lt_two_inch_w, self._lt_two_inch_h))return resize_imgdef two_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._two_ratio:ratio_img = self.crop_l_r(img, self._two_ratio, h, w)else:ratio_img = self.crop_d(img, self._two_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._two_inch_w, self._two_inch_h))return resize_imgdef five_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._five_ratio:ratio_img = self.crop_l_r(img, self._five_ratio, h, w)else:ratio_img = self.crop_d(img, self._five_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._five_inch_w, self._five_inch_h))return resize_imgdef six_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._six_ratio:ratio_img = self.crop_l_r(img, self._six_ratio, h, w)else:ratio_img = self.crop_d(img, self._six_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._six_inch_w, self._six_inch_h))return resize_imgdef seven_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._seven_ratio:ratio_img = self.crop_l_r(img, self._seven_ratio, h, w)else:ratio_img = self.crop_d(img, self._seven_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._seven_inch_w, self._seven_inch_h))return resize_imgdef id_inch(self, img):img = imgh, w = img.shape[:2]img_ratio = w / hif img_ratio >= self._id_ratio:ratio_img = self.crop_l_r(img, self._id_ratio, h, w)else:ratio_img = self.crop_d(img, self._id_ratio, h, w)resize_img = cv2.resize(ratio_img, (self._id_inch_w, self._id_inch_h))return resize_imgdef crop_l_r(self, img, ratio, h, w):"""左右裁剪图片大小比例 > ratio"""crop_w = int(ratio * h)# 将w左右裁剪成这个crop_w的大小hide_w = (w - crop_w) // 2return_img = img[:, hide_w:w - hide_w]return return_imgdef crop_d(self, img, ratio, h, w):"""图片下裁剪图片的大小比例 < ratio"""crop_h = int(w / ratio)hide_h = h - crop_hreturn_img = img[:h-hide_h, :]return return_imgif __name__ == "__main__":image_path = "1.jpg"img = cv2.imread(image_path)imagesize = ImageSize()resize_img = imagesize.lt_one_inch(img)cv2.imwrite('resize.jpg', resize_img)

python--修改证件照的大小相关推荐

  1. 一寸证件照比例大小是多少?这些方法轻松修改照片尺寸

    一寸证件照的尺寸大小是25mm×35mm,它的比例大小是3:4,在日常生活中,有很多情况需要使用到一寸证件照,报名各种考试,如高考.公务员考试.托福考试等,还有申请各种服务,如银行开户.手机卡办理等都 ...

  2. doc python 字体颜色,Python docx修改文字大小字体类型 Python-docx 实现整体修改或者部分修改文字的大小和字体类型...

    想了解Python-docx 实现整体修改或者部分修改文字的大小和字体类型的相关内容吗,Leeoo_lyq在本文为您仔细讲解Python docx修改文字大小字体类型的相关知识和一些Code实例,欢迎 ...

  3. python判断哪个数最小_怎么用python比较三个数大小

    大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语法知识后,又会有不同的实现方式,比如依次接收用户输入的3个数,排 ...

  4. python求三个整数最大值_怎么用python比较三个数大小

    大部分初学编程的人来说刚开始都会练习判断两个数或者三个数的大小,来熟悉某种语言的特性和最基本的if,else循环,当我们学习了更高级的语法知识后,又会有不同的实现方式,比如依次接收用户输入的3个数,排 ...

  5. 在Windows电脑上修改图片内存大小的方法

    我们在网上进行一些报名操作时一般都会需要我们提供个人证件照,但是通常还会对证件照的内存占用大小进行限制,下面小编分享一下在电脑上修改证件照内存占用大小的方法: 1.找到需要修改大小的照片,鼠标右击照片 ...

  6. 怎么修改图片尺寸大小?图片改大小用什么软件?

    怎么修改图片尺寸大小?可以使用压缩啦的图片改大小(图片改大小 在线修改照片大小 图片修改大小工具-压缩啦)工具,不用下载安装就可以在线图片修改,一起来看看怎么操作吧. 1.进入压缩啦点击图片改大小. ...

  7. python tkinter获取屏幕大小_Python使用鼠标滚轮调整tkinter应用程序窗口大小

    图书推荐:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配套 ...

  8. 电子证件照怎么换背景?怎样修改证件照底色?

    不同证件的证件照有背景颜色要求,一般我们会到照相馆重新拍照,或者使用ps来给证件照换底色,但是PS比较难操作,很多小伙伴都不会使用.所以今天小编分享一个在线证件照换背景的方法,利用我们浏览器来给证件照 ...

  9. Python3-word文档操作(三):利用python修改word文档的内容

    前两篇博文中,学习了是用python的docx库创建一个word文档,并且编辑了标题和正文,以及利用python来获取word文档的内容.本篇学习利用python修改word文档的内容. 修改word ...

  10. linux修改swap分区大小2GB,Linux下修改Swap分区大小

    据了解Linux下可以有两种方法创建交换空间,一种是创建交换分区,另一种是创建交换文件.本文记录的是创建交换文件的方法,因为我用的是这种方法.. 添加交换文件步骤: 1.找个地方创建一个.swap的文 ...

最新文章

  1. 一句话总结卷积神经网络
  2. ADO.Net知识总结
  3. POJ1151(矩形切割入门题)
  4. python中使用什么注释语句和运算_Python基础知识
  5. codevs1219 骑士遍历(棋盘DP)
  6. android中的ContentProvider实现数据共享
  7. 我是永远不可能出轨的,除非......
  8. 【贪心】最大连续数列的和
  9. pytorch tensor查找0_Pytorch tensor(0): Tensor Introduction
  10. Upload LABS Pass-8
  11. Linux查看登录日志
  12. 利用.htaccess绑定域名到子目录
  13. Hiho----无间道之并查集
  14. TTL转USB TTL 232 CH340
  15. Real-Time Rendering 4th 译文《二十一 虚拟现实与增强现实》
  16. 进程同步——信号量机制(操作系统)
  17. Pycharm打开已有项目配置python环境
  18. 电影资源 BT PT下载的电影命名 规则 资源 详解
  19. 【openface : RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat】
  20. WebSocket 简述

热门文章

  1. ARM920T MMU and Cache
  2. 计算机打开查看方式默认是什么样,win10图片打开方式里没有默认照片查看器的解决方法...
  3. 【php】PHP制作QQ微信支付宝三合一收款码
  4. Python pandas DataFrame排序与去重操作
  5. Mybatis-Plus实现逻辑删除
  6. sql 同义词使用_使用同义词简化SQL Server代码
  7. androidnbsp;框架构图
  8. 微信公共号开发教程java版——微信网页授权(八)
  9. mac怎么压缩pdf文件最小
  10. java 求一二次方程的根_java求一元二次方程的根