導航:首頁 > 編程語言 > 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度相關的資料

熱點內容
php模擬瀏覽器環境 瀏覽:349
編程誰都能學會嗎 瀏覽:407
使用國家反詐app都要開啟什麼 瀏覽:712
下載民宿APP有什麼用 瀏覽:50
續子語pdf 瀏覽:385
2021年加密貨幣最新行情 瀏覽:162
nfs怎麼加密ipsec 瀏覽:245
國二考試調用編譯器運算選擇題 瀏覽:750
同濟大學高等數學pdf 瀏覽:234
延時的宏命令怎麼設置 瀏覽:596
資料庫有哪些加密 瀏覽:209
改之理反編譯注冊教程 瀏覽:391
什麼是編譯程序和翻譯程序 瀏覽:207
python課程心得總結 瀏覽:17
派派中怎麼看對方在哪個伺服器 瀏覽:796
xp配置java環境變數配置 瀏覽:9
python中1到100怎麼算 瀏覽:767
小度我想看程序員 瀏覽:508
bs刷裝備建立後文件夾沒有 瀏覽:81
找漫畫看應該下載什麼app 瀏覽:182