成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python怎么對(duì)圖像進(jìn)行處理和壓縮

89542767 / 391人閱讀

  眾所周知,Python的功能還是比較多的,其中,他們可以對(duì)圖像進(jìn)行相關(guān)的處理,處理完成之后,還能對(duì)其進(jìn)行相關(guān)的壓縮,具體的,關(guān)于Python的功能介紹,就為大家介紹到這里了,希望可以給各位讀者帶來幫助。


  入門了解1.顏色


  如果你有使用顏料畫畫的經(jīng)歷,那么一定知道混合紅、黃、藍(lán)三種顏料可以得到其他的顏色,事實(shí)上這三種顏色就是美術(shù)中的三原色,它們是不能再分解的基本顏色。在計(jì)算機(jī)中,我們可以將紅、綠、藍(lán)三種色光以不同的比例疊加來組合成其他的顏色,因此這三種顏色就是色光三原色。在計(jì)算機(jī)系統(tǒng)中,我們通常會(huì)將一個(gè)顏色表示為一個(gè)RGB值或RGBA值(其中的A表示Alpha通道,它決定了透過這個(gè)圖像的像素,也就是透明度)。

01.png

  入門了解2.像素


  對(duì)于一個(gè)由數(shù)字序列表示的圖像來說,最小的單位就是圖像上單一顏色的小方格,這些小方塊都有一個(gè)明確的位置和被分配的色彩數(shù)值,而這些一小方格的顏色和位置決定了該圖像最終呈現(xiàn)出來的樣子,它們是不可分割的單位,我們通常稱之為像素(pixel)。每一個(gè)圖像都包含了一定量的像素,這些像素決定圖像在屏幕上所呈現(xiàn)的大小,大家如果愛好拍照或者自拍,對(duì)像素這個(gè)詞就不會(huì)陌生。

02.png

  用Pillow處理圖像


  Pillow是由從著名的Python圖像處理庫(kù)PIL發(fā)展出來的一個(gè)分支,通過Pillow可以實(shí)現(xiàn)圖像壓縮和圖像處理等各種操作。可以使用下面的命令來安裝Pillow。

  pip install pillow


  Pillow中最為重要的是Image類,可以通過Image模塊的open函數(shù)來讀取圖像并獲得Image類型的對(duì)象。


  1.讀取和顯示圖像


  from PIL import Image
  #讀取圖像獲得Image對(duì)象
  image=Image.open('guido.jpg')
  #通過Image對(duì)象的format屬性獲得圖像的格式
  print(image.format)#JPEG
  #通過Image對(duì)象的size屬性獲得圖像的尺寸
  print(image.size)#(500,750)
  #通過Image對(duì)象的mode屬性獲取圖像的模式
  print(image.mode)#RGB
  #通過Image對(duì)象的show方法顯示圖像
  image.show()


  2.剪裁圖像


  #通過Image對(duì)象的crop方法指定剪裁區(qū)域剪裁圖像
  image.crop((80,20,310,360)).show()


  3.生成縮略圖


  #通過Image對(duì)象的thumbnail方法生成指定尺寸的縮略圖
  image.thumbnail((128,128))
  image.show()

03.png

  4.縮放和黏貼圖像


  #讀取駱昊的照片獲得Image對(duì)象
  luohao_image=Image.open('luohao.png')
  #讀取吉多的照片獲得Image對(duì)象
  guido_image=Image.open('guido.jpg')
  #從吉多的照片上剪裁出吉多的頭
  guido_head=guido_image.crop((80,20,310,360))
  width,height=guido_head.size
  #使用Image對(duì)象的resize方法修改圖像的尺寸
  #使用Image對(duì)象的paste方法將吉多的頭粘貼到駱昊的照片上
  luohao_image.paste(guido_head.resize((int(width/1.5),int(height/1.5))),(172,40))
  luohao_image.show()


  5.旋轉(zhuǎn)和翻轉(zhuǎn)


  image=Image.open('guido.jpg')
  #使用Image對(duì)象的rotate方法實(shí)現(xiàn)圖像的旋轉(zhuǎn)
  image.rotate(45).show()
  #使用Image對(duì)象的transpose方法實(shí)現(xiàn)圖像翻轉(zhuǎn)
  #Image.FLIP_LEFT_RIGHT-水平翻轉(zhuǎn)
  #Image.FLIP_TOP_BOTTOM-垂直翻轉(zhuǎn)
  image.transpose(Image.FLIP_TOP_BOTTOM).show()


  6.操作像素


  for x in range(80,310):
  for y in range(20,360):
  #通過Image對(duì)象的putpixel方法修改圖像指定像素點(diǎn)
  image.putpixel((x,y),(128,128,128))
  image.show()


  7.濾鏡效果


  from PIL import ImageFilter
  #使用Image對(duì)象的filter方法對(duì)圖像進(jìn)行濾鏡處理
  #ImageFilter模塊包含了諸多預(yù)設(shè)的濾鏡也可以自定義濾鏡
  image.filter(ImageFilter.CONTOUR).show()


  使用Pillow繪圖


  Pillow中有一個(gè)名為ImageDraw的模塊,該模塊的Draw函數(shù)會(huì)返回一個(gè)ImageDraw對(duì)象,通過ImageDraw對(duì)象的arc、line、rectangle、ellipse、polygon等方法,可以在圖像上繪制出圓弧、線條、矩形、橢圓、多邊形等形狀,也可以通過該對(duì)象的text方法在圖像上添加文字。


  完整的代碼如下所示。


  import random
  from PIL import Image,ImageDraw,ImageFont
  def random_color():
  """生成隨機(jī)顏色"""
  red=random.randint(0,255)
  green=random.randint(0,255)
  blue=random.randint(0,255)
  return red,green,blue
  width,height=800,600
  #創(chuàng)建一個(gè)800*600的圖像,背景色為白色
  image=Image.new(mode='RGB',size=(width,height),color=(255,255,255))
  #創(chuàng)建一個(gè)ImageDraw對(duì)象
  drawer=ImageDraw.Draw(image)
  #通過指定字體和大小獲得ImageFont對(duì)象
  font=ImageFont.truetype('Kongxin.ttf',32)
  #通過ImageDraw對(duì)象的text方法繪制文字
  drawer.text((300,50),'Hello,world!',fill=(255,0,0),font=font)
  #通過ImageDraw對(duì)象的line方法繪制兩條對(duì)角直線
  drawer.line((0,0,width,height),fill=(0,0,255),width=2)
  drawer.line((width,0,0,height),fill=(0,0,255),width=2)
  xy=width//2-60,height//2-60,width//2+60,height//2+60
  #通過ImageDraw對(duì)象的rectangle方法繪制矩形
  drawer.rectangle(xy,outline=(255,0,0),width=2)
  #通過ImageDraw對(duì)象的ellipse方法繪制橢圓
  for i in range(4):
  left,top,right,bottom=150+i*120,220,310+i*120,380
  drawer.ellipse((left,top,right,bottom),outline=random_color(),width=8)
  #顯示圖像
  image.show()
  #保存圖像
  image.save('result.png')

  注意:上面代碼中使用的字體文件需要根據(jù)自己準(zhǔn)備,可以選擇自己喜歡的字體文件并放置在代碼目錄下。


  總結(jié)


  使用Python語言做開發(fā),除了可以用Pillow來處理圖像外,還可以使用更為強(qiáng)大的OpenCV庫(kù)來完成圖形圖像的處理,OpenCV(Open Source Computer Vision Library)是一個(gè)跨平臺(tái)的計(jì)算機(jī)視覺庫(kù),可以用來開發(fā)實(shí)時(shí)圖像處理、計(jì)算機(jī)視覺和模式識(shí)別程序。在我們的日常工作中,有很多繁瑣乏味的任務(wù)其實(shí)都可以通過Python程序來處理,編程的目的就是讓計(jì)算機(jī)幫助我們解決問題,減少重復(fù)乏味的勞動(dòng)。


  上述內(nèi)容就給大家介紹到這里了,希望可以給大家?guī)砀嗟膸椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/128178.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<