python放大图片和画方格实现算法
作者:Meileone 发布时间:2023-05-21 15:22:41
标签:python,放大图片,画方格
本文实例为大家分享了python放大图片和画方格的具体代码,供大家参考,具体内容如下
1、Python 放大图片和画方格算法
#!C:/Python27
# -*- coding: utf-8 -*-
import os
import sys
from PIL import Image,ImageDraw
def make_doc_data(lf):
#li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))#两张图片方法
li = Image.open(lf)
size = (256, 256)
#几何转变,全部转化为256*256像素大小
li =li.resize(size).convert('RGB')
li.save(lf + '_regalur.png')#转换图片格式:img.save('file.jpg'),保存临时的
#ri.save(rf + '_regalur.png')#img对象到硬盘
fd = open('stat.csv', 'w')#stat模块是做随机变量统计的,stat用来计算随机变量的期望值和方差
#这句是关键啊,把histogram的结果进行map处理
#fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram()))))
fd.write(','.join(map(str, li.histogram())))
fd.close()
li = li.convert('RGB') #与save对象,这是转换格式
draw = ImageDraw.Draw(li)
for i in xrange(0, 256, 64):
draw.line((0, i, 256, i), fill = '#ff0000')
draw.line((i, 0, i, 256), fill = '#ff0000')
#从始至终划线!通过把每一列刷成红色,来进行颜色的随机分布划分
#用法:pygame.draw.line(Surface, color, start_pos, end_pos, width=1)
li.save(lf + '_lines.png')
make_doc_data('testpic/1370.bmp')
2、放大缩小图片的几种方法
#!C:/Python27
#coding=utf-8
import pytesseract
from pytesser import *
from PIL import Image,ImageEnhance,ImageFilter
import os
import fnmatch
import re,time
import urllib, random
#修改文件名
#os.rename("E:/pythonScript/Model/font/2.bmp","E:/pythonScript/Model/font/dock2.bmp")
def CutImg():
img = Image.open('.//6907.jpg').convert('L')
print img.size
w, h = img.size
#rowheight = h // rownum
#colwidth = w // colnum
#imgry.show()
j = 10
for i in range(4):
x = 10 + i*24 #验证码的x,y坐标
y = 6
img.crop((x-4, y,x+6, y+14)).save("pic/%d.bmp" % j)
print "j=",j
j += 1
img.close()
infile = ('.//testpic//001n.bmp')
outfile = ('.//testpic//001n.png')
def fixed_size(infile):
"""按照固定尺寸处理图片"""
im = Image.open(infile)
size = (256, 256)
im2 =im.resize(size).convert('RGB')
out = im2.resize(size,Image.ANTIALIAS)
out.save(outfile)
print u"\n按固定尺寸放大图片,处理已完成"
def resize_by_width(w_divide_h):
"""按照宽度进行所需比例缩小"""
im = Image.open(infile)
print im.size
(x, y) = im.size
x_s = x
print x_s
y_s = x/w_divide_h #w_divide_h > x
print y_s
out = im.resize((x_s, y_s), Image.ANTIALIAS)
out.save(outfile)
def resize_by_height(w_divide_h):
"""按照高度进行所需比例缩放"""
im = Image.open(infile)
(x, y) = im.size
print im.size
x_s = y*w_divide_h
y_s = y
out = im.resize((x_s, y_s), Image.ANTIALIAS)
out.save(outfile,quality = 95,dpi=(72, 72))
def cut_by_ratio(width, height):
"""按照图片长宽比进行分割"""
im = Image.open(infile)
width = float(width)
height = float(height)
(x, y) = im.size
if width > height:
region = (0, int((y-(y * (height / width)))/2), x, int((y+(y * (height / width)))/2))
elif width < height:
region = (int((x-(x * (width / height)))/2), 0, int((x+(x * (width / height)))/2), y)
else:
region = (0, 0, x, y)
#裁切图片
crop_img = im.crop(region)
#保存裁切后的图片
crop_img.save(outfile)
def Lager(size):
im = Image.open(infile)
im_resized=im.resize(size, Image.ANTIALIAS)
im_resized.save(outfile,quality = 95,dpi=(72, 72))
def mohuimg():
"""
模糊图片
"""
im = Image.open(infile)
im2 = im.filter(ImageFilter.BLUR)
im2.save(outfile)
"""
多种尺寸icon的存储
"""
image_size = [512,250,144,140,128,120,108,100,88,72,48,32,28]
def create_icon():
for size in image_size:
'''''pri_image = Image.open("icon.png")
pri_image.thumbnail((size,size))
image_name = "icon_%d.png"%(size)
pri_image.save(image_name)'''
pri_image = Image.open(infile)
pri_image.resize((size,size),Image.ANTIALIAS ).save("testpic/icom_%d.png"%(size))
fixed_size(infile)
#resize_by_width(10)
#resize_by_height(1)
#cut_by_ratio(50,20)
#Lager(256)
#mohuimg()
#create_icon()
#CutImg()
来源:https://blog.csdn.net/qq_18808965/article/details/73649385


猜你喜欢
- 各种asp字符串处理函数,包括:把字符串换为char型数组,把一个数组转换成一个字符串,检查源字符串str是否以chars开头,检查源字符串
- 引言如果熟悉使用JDBC来连接数据库的同学一定很清楚连接数据库的代码中一定会有依据Class.forName("com.mysql
- 前言numpy支持对矩阵和数组进行运算,因此很多numpy的很多运算都需要指定操作的维数参数axis(当然这些axis都有带默认值的),本博
- 如何让用户也能修改密码? 好了,照下面添加到你要添加的地方去:<%id = Request(&qu
- 用扩展名判断文件格式非常简单,但是有可能是错误的。 jpeg文件有固定的文件头,其文件头的格式如下:Start Marker | JFIF
- 这篇文章主要介绍了Python zip函数打包元素实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 在SQL Server 2005中,它的另外一个强大的新特点是数据库快照。数据库快照是一个数据库的只读副本,它是数据库所有数据的映射,由快照
- 本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下:一、需求分析输入想要计算到小数点后的位数,计算
- 容器与可迭代对象在正式开始前先补充一些基本概念在 Python 中存在容器 与 可迭代对象容器:用来存储多个元素的数据结构,例如 列表,元组
- 图片文字分割的时候,常用的方法有两种。一种是投影法,适用于排版工整,字间距行间距比较宽裕的图像;还有一种是用OpenCV的轮廓检测,适用于文
- 目录1.简介2.list2.1数据结构2.2插入元素3.ring3.1数据结构4.heap4.1数据结构1.简介Container — 容器
- <div style='display:none'> <script type="text/ja
- 不过先前的 调用方法着实有些繁琐,先实例化->添加参数、变量->写入,搞的跟把大象装冰箱里头一样麻烦。好在作者终于注意到这一点,
- 前言本博客重点:folium的使用功能,图层控制、指北针、folium添加js和css、经纬网格线(栅格线)在上一篇使用folium制作地图
- getattr`getattr`函数属于内建函数,可以通过函数名称获取value = obj.attributevalue = getatt
- 利用序列产生主键值。 序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提
- 1 Python自动绘图在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的Auto
- Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I love China!
- 本来是在找交通识别的程序,然后凑巧看见了证件照换底,于是学习了一下~一开始在网上找了一个很普遍写的程序,但是效果并不好,想要放弃了,然后看见
- 基本概念数字图像定义对于一幅图像,我们可以将其放入坐标系中,这里取图像左上定点为坐标原点,x 轴向右,和笛卡尔坐标系x轴相同;y 轴向下,和