日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python卡通滤镜_纯Python综合图像处理小工具(3)10种滤镜算法

發布時間:2024/1/8 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python卡通滤镜_纯Python综合图像处理小工具(3)10种滤镜算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

濾鏡處理是圖像處理中一種非常常見的方法。比如photoshop中的濾鏡效果,除了自帶的濾鏡,還擴展了很多第三方的濾鏡效果插件,可以對圖像做豐富多樣的變換;很多手機app實現了實時濾鏡功能,最有名的當屬Instagram。

濾鏡的原理,常見的是針對數字圖像的像素矩陣,使用一個nxn的方形矩陣做濾波器(即kernel,常見的如3x3,5x5等),對該像素矩陣進行遍歷,遍歷后的圖像就是輸出圖像,如果算法經過優化,遍歷的速度足夠快,那就是實時濾鏡(live filter),可以實時預覽圖像過濾后的效果。

ImageFilter是Python PIL的濾鏡模塊,當前版本支持10種加強濾鏡,通過這些預定義的濾鏡,可以方便的對圖片進行一些過濾操作,從而去掉圖片中的噪音(部分的消除),這樣可以降低圖像處理算法的復雜度(如模式識別等),更方便的實現和預覽一些算法的效果。

本文腳本包含以下全部濾鏡, 實現了10種圖像處理濾鏡的效果預覽和JPEG文件保存。

ImageFilter.BLUR

模糊濾鏡

ImageFilter.CONTOUR

輪廓

ImageFilter.DETAIL

細節濾鏡

ImageFilter.EDGE_ENHANCE

邊界加強

ImageFilter.EDGE_ENHANCE_MORE

邊界加強(閥值更 大)

ImageFilter.EMBOSS

浮雕濾鏡

ImageFilter.FIND_EDGES

邊界濾鏡

ImageFilter.SMOOTH

平滑濾鏡

ImageFilter.SMOOTH_MORE

平滑濾鏡(閥值更大)

ImageFilter.SHARPEN

銳化濾鏡

原圖:

模糊濾鏡:

銳度增強濾鏡:

細節濾鏡:

輪廓濾鏡:

邊界提取濾鏡:

邊界增強濾鏡:

邊界增強濾鏡-加強版:

平滑濾鏡:

平滑濾鏡-加強版:

浮雕濾鏡:

PIL庫的濾鏡算法可以在Python\Lib\site-packages\PIL路徑下找到,如下所示:

在PIL路徑下,我們看到了三個同名但后綴不同的文件:ImageFilter.py?ImageFilter.pyc?ImageFilter.pyo 。

.pyc文件:是同名的.py編譯后的字節碼文件,用來供解釋器解釋執行;

.pyo文件:是同名的.pyc文件經過優化后的字節碼文件,通常體積更小,運行更快。

濾鏡算法在ImageFilter.py文件中。

如前文所述,每一個濾鏡通常對應著一個濾波器(即kernel),PIL中的kernel均為常見的3x3和5x5方形矩陣,下面是PIL中9種濾鏡對應的矩陣:

模糊濾鏡:

class?BLUR(BuiltinFilter):

name?=?"Blur"

filterargs?=?(5,?5),?16,?0,?(

1,??1,??1,??1,??1,

1,??0,??0,??0,??1,

1,??0,??0,??0,??1,

1,??0,??0,??0,??1,

1,??1,??1,??1,??1

)

輪廓濾鏡:

class?CONTOUR(BuiltinFilter):

name?=?"Contour"

filterargs?=?(3,?3),?1,?255,?(

-1,?-1,?-1,

-1,??8,?-1,

-1,?-1,?-1

)

細節濾鏡:

class?DETAIL(BuiltinFilter):

name?=?"Detail"

filterargs?=?(3,?3),?6,?0,?(

0,?-1,??0,

-1,?10,?-1,

0,?-1,??0

)

邊緣增強濾鏡:

class?EDGE_ENHANCE(BuiltinFilter):

name?=?"Edge-enhance"

filterargs?=?(3,?3),?2,?0,?(

-1,?-1,?-1,

-1,?10,?-1,

-1,?-1,?-1

)

邊緣增強濾鏡-增強版:

該增強版和原濾鏡僅僅是矩陣2行2列的一個參數大小不同,實際是修改了中心像素的權重。這個數值可以任意修改以自定義邊緣增強的幅度。

class?EDGE_ENHANCE_MORE(BuiltinFilter):

name?=?"Edge-enhance?More"

filterargs?=?(3,?3),?1,?0,?(

-1,?-1,?-1,

-1,??9,?-1,

-1,?-1,?-1

)

浮雕濾鏡

class?EMBOSS(BuiltinFilter):

name?=?"Emboss"

filterargs?=?(3,?3),?1,?128,?(

-1,??0,??0,

0,??1,??0,

0,??0,??0

)

邊緣提取濾鏡

class?FIND_EDGES(BuiltinFilter):

name?=?"Find?Edges"

filterargs?=?(3,?3),?1,?0,?(

-1,?-1,?-1,

-1,??8,?-1,

-1,?-1,?-1

)

平滑濾鏡:

class?SMOOTH(BuiltinFilter):

name?=?"Smooth"

filterargs?=?(3,?3),?13,?0,?(

1,??1,??1,

1,??5,??1,

1,??1,??1

)

平滑濾鏡-加強版:

平滑濾鏡的加強是增加了濾鏡窗口的尺寸,有3x3擴展到5x5, 這樣每一個新像素的產生會包含25個周圍原始像素的加權貢獻(離得越近,貢獻越大),這樣的結果會更加平滑自然,代價是處理速度會明顯的變慢。

class?SMOOTH_MORE(BuiltinFilter):

name?=?"Smooth?More"

filterargs?=?(5,?5),?100,?0,?(

1,??1,??1,??1,??1,

1,??5,??5,??5,??1,

1,??5,?44,??5,??1,

1,??5,??5,??5,??1,

1,??1,??1,??1,??1

)

銳化濾鏡:

class?SHARPEN(BuiltinFilter):

name?=?"Sharpen"

filterargs?=?(3,?3),?16,?0,?(

-2,?-2,?-2,

-2,?32,?-2,

-2,?-2,?-2

)

#start#-*-?coding:?cp936?-*-import?Image,ImageDraw

import?ImageFilter,random,sys

img?=?Image.open("1.jpg")

##圖像處理##

#轉換為RGB圖像img?=?img.convert("RGB")

#經過PIL自帶filter處理imgfilted_b?=?img.filter(ImageFilter.BLUR)

imgfilted_c?=?img.filter(ImageFilter.CONTOUR)

imgfilted_ee?=?img.filter(ImageFilter.EDGE_ENHANCE)

imgfilted_ee_m?=?img.filter(ImageFilter.EDGE_ENHANCE_MORE)

imgfilted_em?=?img.filter(ImageFilter.EMBOSS)

imgfilted_fe?=?img.filter(ImageFilter.FIND_EDGES)

imgfilted_sm?=?img.filter(ImageFilter.SMOOTH)

imgfilted_sm_m?=?img.filter(ImageFilter.SMOOTH_MORE)

imgfilted_sh?=?img.filter(ImageFilter.SHARPEN)

imgfilted_d?=?img.filter(ImageFilter.Detail)

##圖像保存##

imgfilted_b.save("1b.jpg")

imgfilted_c.save("1c.jpg")

imgfilted_ee.save("1ee.jpg")

imgfilted_ee_m.save("1eem.jpg")

imgfilted_em.save("1em.jpg")

imgfilted_fe.save("1fe.jpg")

imgfilted_sm.save("1sm.jpg")

imgfilted_sm_m.save("1smm.jpg")

imgfilted_sh.save("1sh.jpg")

imgfilted_d.save("1d.jpg")

##圖像顯示##

imgfilted_b.show()

imgfilted_c.show()

imgfilted_ee.show()

imgfilted_ee_m.show()

imgfilted_em.show()

imgfilted_fe.show()

imgfilted_sm.show()

imgfilted_sm_m.show()

imgfilted_sh.show()

imgfilted_d.show()

#end

原文:http://www.cnblogs.com/sopic/p/4538052.html

總結

以上是生活随笔為你收集整理的python卡通滤镜_纯Python综合图像处理小工具(3)10种滤镜算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。