导航:首页 > 编程语言 > python逆时针旋转90度

python逆时针旋转90度

发布时间:2022-10-28 23:51:21

Ⅰ 在python中如何让输入数字自动变为角度,比如我输入90,但是要转换为90度。

math.pi/180这样为1度,math.pi/180*2就为2度,以此类推math.pi/180*60就为60度

Ⅱ python:PIL图像处理

PIL (Python Imaging Library)

Python图像处理库,该库支持多种文件格式,提供强大的图像处理功能。

PIL中最重要的类是Image类,该类在Image模块中定义。

从文件加载图像:

如果成功,这个函数返回一个Image对象。现在你可以使用该对象的属性来探索文件的内容。

format 属性指定了图像文件的格式,如果图像不是从文件中加载的则为 None 。
size 属性是一个2个元素的元组,包含图像宽度和高度(像素)。
mode 属性定义了像素格式,常用的像素格式为:“L” (luminance) - 灰度图, “RGB” , “CMYK”。

如果文件打开失败, 将抛出IOError异常。

一旦你拥有一个Image类的实例,你就可以用该类定义的方法操作图像。比如:显示

( show() 的标准实现不是很有效率,因为它将图像保存到一个临时文件,然后调用外部工具(比如系统的默认图片查看软件)显示图像。该函数将是一个非常方便的调试和测试工具。)

接下来的部分展示了该库提供的不同功能。

PIL支持多种图像格式。从磁盘中读取文件,只需使用 Image 模块中的 open 函数。不需要提供文件的图像格式。PIL库将根据文件内容自动检测。

如果要保存到文件,使用 Image 模块中的 save 函数。当保存文件时,文件名很重要,除非指定格式,否则PIL库将根据文件的扩展名来决定使用哪种格式保存。

** 转换文件到JPEG **

save 函数的第二个参数可以指定使用的文件格式。如果文件名中使用了一个非标准的扩展名,则必须通过第二个参数来指定文件格式。

** 创建JPEG缩略图 **

需要注意的是,PIL只有在需要的时候才加载像素数据。当你打开一个文件时,PIL只是读取文件头获得文件格式、图像模式、图像大小等属性,而像素数据只有在需要的时候才会加载。

这意味着打开一个图像文件是一个非常快的操作,不会受文件大小和压缩算法类型的影响。

** 获得图像信息 **

Image 类提供了某些方法,可以操作图像的子区域。提取图像的某个子区域,使用 crop() 函数。

** 复制图像的子区域 **

定义区域使用一个包含4个元素的元组,(left, upper, right, lower)。坐标原点位于左上角。上面的例子提取的子区域包含300x300个像素。

该区域可以做接下来的处理然后再粘贴回去。

** 处理子区域然后粘贴回去 **

当往回粘贴时,区域的大小必须和参数匹配。另外区域不能超出图像的边界。然而原图像和区域的颜色模式无需匹配。区域会自动转换。

** 滚动图像 **

paste() 函数有个可选参数,接受一个掩码图像。掩码中255表示指定位置为不透明,0表示粘贴的图像完全透明,中间的值表示不同级别的透明度。

PIL允许分别操作多通道图像的每个通道,比如RGB图像。 split() 函数创建一个图像集合,每个图像包含一个通道。 merge() 函数接受一个颜色模式和一个图像元组,然后将它们合并为一个新的图像。接下来的例子交换了一个RGB图像的三个通道。

** 分离和合并图像通道 **

对于单通道图像, split() 函数返回图像本身。如果想处理各个颜色通道,你可能需要先将图像转为RGB模式。

resize() 函数接受一个元组,指定图像的新大小。
rotate() 函数接受一个角度值,逆时针旋转。

** 基本几何变换 **

图像旋转90度也可以使用 transpose() 函数。 transpose() 函数也可以水平或垂直翻转图像。

** transpose **

transpose() 和 rotate() 函数在性能和结果上没有区别。

更通用的图像变换函数为 transform() 。

PIL可以转换图像的像素模式。

** 转换颜色模式 **

PIL库支持从其他模式转为“L”或“RGB”模式,其他模式之间转换,则需要使用一个中间图像,通常是“RGB”图像。

ImageFilter 模块包含多个预定义的图像增强过滤器用于 filter() 函数。

** 应用过滤器 **

point() 函数用于操作图像的像素值。该函数通常需要传入一个函数对象,用于操作图像的每个像素:

** 应用点操作 **

使用以上技术可以快速地对图像像素应用任何简单的表达式。可以结合 point() 函数和 paste 函数修改图像。

** 处理图像的各个通道 **

注意用于创建掩码图像的语法:

Python计算逻辑表达式采用短路方式,即:如果and运算符左侧为false,就不再计算and右侧的表达式,而且返回结果是表达式的结果。比如 a and b 如果a为false则返回a,如果a为true则返回b,详见Python语法。

对于更多高级的图像增强功能,可以使用 ImageEnhance 模块中的类。

可以调整图像对比度、亮度、色彩平衡、锐度等。

** 增强图像 **

PIL库包含对图像序列(动画格式)的基本支持。支持的序列格式包括 FLI/FLC 、 GIF 和一些实验性的格式。 TIFF 文件也可以包含多个帧。

当打开一个序列文件时,PIL库自动加载第一帧。你可以使用 seek() 函数 tell() 函数在不同帧之间移动。

** 读取序列 **

如例子中展示的,当序列到达结尾时,将抛出EOFError异常。

注意当前版本的库中多数底层驱动只允许seek到下一帧。如果想回到前面的帧,只能重新打开图像。

以下迭代器类允许在for语句中循环遍历序列:

** 一个序列迭代器类 **

PIL库包含一些函数用于将图像、文本打印到Postscript打印机。以下是一个简单的例子。

** 打印到Postscript **

如前所述,可以使用 open() 函数打开图像文件,通常传入一个文件名作为参数:

如果打开成功,返回一个Image对象,否则抛出IOError异常。

也可以使用一个file-like object代替文件名(暂可以理解为文件句柄)。该对象必须实现read,seek,tell函数,必须以二进制模式打开。

** 从文件句柄打开图像 **

如果从字符串数据中读取图像,使用StringIO类:

** 从字符串中读取 **

如果图像文件内嵌在一个大文件里,比如 tar 文件中。可以使用ContainerIO或TarIO模块来访问。

** 从tar文档中读取 **

** 该小节不太理解,请参考原文 **

有些解码器允许当读取文件时操作图像。通常用于在创建缩略图时加速解码(当速度比质量重要时)和输出一个灰度图到激光打印机时。

draft() 函数。

** Reading in draft mode **

输出类似以下内容:

注意结果图像可能不会和请求的模式和大小匹配。如果要确保图像不大于指定的大小,请使用 thumbnail 函数。

Python2.7 教程 PIL
http://www.liaoxuefeng.com/wiki//

Python 之 使用 PIL 库做图像处理
http://www.cnblogs.com/way_testlife/archive/2011/04/17/2019013.html

来自 http://effbot.org/imagingbook/introction.htm

Ⅲ 如何用Python+Pygame旋转图像、灰度图像

‘’‘
2013-7-4
by JavenLee
希望能带给你启发
'''
import Image
img = Image.open(‘origin.png’) # 得到一个图像的实例对象 img
rot_img = img.rotate(270) #顺时针旋转90度
rot_img.save("rot_img.jpg")
x_img=img.transpose(Image.FLIP_LEFT_RIGHT) #垂直翻转
y_img=img.transpose(Image.FLIP_TOP_BOTTOM) #水平翻转

new_imag=img.convert('L')
'''
模式
img.convert() 参数说明如下:
1 1位像素,黑和白,存成8位的像素
L 8位像素,黑白
P 8位像素,使用调色板映射到任何其他模式
RGB 3×8位像素,真彩
RGBA 4×8位像素,真彩+透明通道
CMYK 4×8位像素,颜色隔离
YCbCr 3×8位像素,彩色视频格式
I 32位整型像素
F 32位浮点型像素

'''

Ⅳ 这是一个python绘图题,请问图一画线部分什么意思啊🤔🤔

#海龟的方向依次逆时针方向转向90度。
import turtle as t
t.pensize(2) #设置画笔的宽度
for i in range(4): #依次取值:0,1,2,3
t.seth(90*i) #绝对角度 turtle.seth(angle) 改变海龟前进方向,0,90,180,270
t.fd(150) #画直线150。
t.right(90) #旋转90
t.circle(-150,45) #根据半径150绘制45角度的弧形
t.goto(0,0) #走回原点.
t.exitonclick() # 窗口等待用户点击界面后才能够退出

Ⅳ 怎么样在python中让最后画出来的图翻转90度

importImage
importos
importglob

dir="f:mobile"
#取出指定文件
file=glob.glob(os.path.join(dir,'xxx.JPG'))

#打开图片
img=Image.open(file)

#显示图片
img.show()
printimg.format,img.size,img.mode
print"rotatingimage....."
im=img.rotate(90)
im.save(image)

我不知道你怎么画的,但旋转请参考以上代码

Ⅵ python_海龟绘图_坐标系问题_画笔各种方法-python工作笔记013

然后我们继续看,这次我们用海龟绘图,程序包,去画画,

看看海龟绘图都有哪些方法

可以看到,先导入import turtle 海龟绘图

然后turtle.showturtle() 会显示一个箭头

turtle.write("hello world") 会显示对应文字

然后turtle.forward(300),会向前走300像素

然后看看海龟绘图的,坐标体系

然后turtle.color("red"),把画笔颜色换成红色

然后turtle.left(90)把箭头,逆时针转90度

然后turtle.forward(300) 向前移动300个像素

然后turtle.goto(0,50) 走到0,50这个坐标点去

再看一下坐标系,原点0,0开始操作

还有上面这些操作,我们也试一试

turtle.goto(0,0)是回到原点

turtle.penup()是抬起画笔

然后turtle.goto(0,300),turtle.goto(0,0) 然后再去,turtle.pendown()放下画笔

然后再去turtle.goto(0,50) turtle.goto(50,50)走到对应的坐标去

然后再去turtle.circle(100),以100为半径,逆时针画一个圆

可以看到,半径是100对吧

Ⅶ 将下面矩阵分别按顺时针90度,逆时针90度,和旋转180度,打印出来

#include"stdio.h"
voidmain()
{
inta[5][6]={1,3,4,2,5,2,
2,3,6,3,8,3,
2,9,7,9,4,8,
6,3,8,1,9,3,
9,3,5,2,8,5,};
ints90[6][5],ni90[6][5],x180[5][6];
inti,j;
printf("顺时针旋转90度矩阵为: ");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[4-j][i];
printf("%2d%",s90[i][j]);
}
printf(" ");
}
printf("逆时针旋转90度矩阵为: ");
for(i=0;i<6;i++)
{
for(j=0;j<5;j++)
{
s90[i][j]=a[j][5-i];
printf("%2d%",s90[i][j]);
}
printf(" ");
}
printf("旋转180度矩阵为: ");
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
s90[i][j]=a[4-i][5-j];
printf("%2d%",s90[i][j]);
}
printf(" ");
}
}

Ⅷ 点关于点顺时针或者逆时针旋转九十度公式是什么

旋转90度的坐标公式:若坐标为(x,y)(x>0,y>0),则向y轴正半轴旋转90度后坐标为(-x,y),向y轴负半轴旋转90度后坐标为(x,-y)。
绕原点旋转90度的坐标公式:顺时针转的话原来的点(x,y)改变后(y,-x);逆时针转的话原来的点(x,y)改变后(-y,x)。

Ⅸ 哪位帮忙解释一下图片九十度旋转的代码啊,怎么让它可以逆时针旋转,下面是代码

你的代码中的第二个按钮显然和第一个按钮一样都是顺时针旋转的,我修改了一下,代码如下:
<html>
<title>按钮控制图片360度翻转效果的JS代码丨芯晴网页特效丨CsrCode.Cn</title>
<body>
<script language="javascript">
var isIE = (document.uniqueID)?1:0;
var i=1;
function rotate(image)
{
var object = image.parentNode;
if(isIE){
image.style.filter="progid:dXImagetransform.Microsoft.basicImage(rotation="+i+")";
i++;
if(i>4) {i=1};
}
else{
try{
var canvas = document.createElement('canvas');
if(canvas.getContext("2d")) {
object.replaceChild(canvas,image);
var context = canvas.getContext("2d");
context.translate(176, 0);
context.rotate(Math.PI*0.5);
context.drawImage(image,0,0);
}
}catch(e){}
}
}
function rotate2(image)
{
var object = image.parentNode;
if(isIE){
image.style.filter="progid:dXImagetransform.Microsoft.basicImage(rotation="+i+")";
i=i+3;
if(i>4) {i=i-4};
}
else{
try{
var canvas = document.createElement('canvas');
if(canvas.getContext("2d")) {
object.replaceChild(canvas,image);
var context = canvas.getContext("2d");
context.translate(176, 0);
context.rotate2(Math.PI*0.5);
context.drawImage(image,0,0);
}
}catch(e){}
}
}
</script>
<input type="button" value="顺时针转" onClick="rotate(document.getElementById('myimg'))" />
<input type="button" value="逆时针转" onClick="rotate2(document.getElementById('myimg'))" /><br />
<img id="myimg" src="http://www.CsrCode.cn/images/m03.jpg"/>
</body>
</html>
//关键就是这几句:
//image.style.filter="progid:dXImagetransform.Microsoft.basicImage(rotation="+i+")";
//i=i+3;
// if(i>4) {i=i-4};
//i为1 2 3 4时分别对应着图像的角度为90 180 270 360 ,所以你要让I每次加3,每次调整270°,也就是逆时针的90°了

Ⅹ 逆时针旋转90度的画法

逆时针旋转90°的画法如下:

第一步:确定这旋转中心,根据需求选择平面上的一个位置作为定点;

第二步:标出逆时针旋转的方向;

阅读全文

与python逆时针旋转90度相关的资料

热点内容
android非阻塞socket 浏览:358
编译系统概念 浏览:450
天眼通app能做什么 浏览:555
魅族手机怎么加密图库 浏览:8
rpa编译器 浏览:570
车载云服务器记录 浏览:738
四川金星压缩机制造有限公司 浏览:53
移动平台图片压缩算法 浏览:35
银行项目java 浏览:569
怎样将pdf转换为ppt 浏览:595
纯净服务器怎么开服 浏览:286
比泽尔压缩机如何换油 浏览:818
编译链接如何生成exe 浏览:74
jre编译运行环境 浏览:271
怎么解压镜像系统 浏览:190
程序员求助国企 浏览:838
云服务器网址租用多少钱 浏览:942
行车记录仪安卓版怎么用 浏览:500
java是不是数字 浏览:183
php模拟浏览器环境 浏览:353