图像处理之RGBA通道提取

图像处理之RGBA通道提取

李兴球Python图像处理之RGBA通道提取

李兴球Python图像处理之RGBA通道提取
以下是部分代码预览:

"""

   图像处理之RGBA通道提取。

   python精灵模块能进行图像处理吗?
   这个...,也算是可以吧,不过核心是numpy,这里只是用它的角色显示图形罢了。
   
   在sprites模块中,在新建屏幕的时候可以加布局参数。
   参数的名称叫layout,如果用Screen新建屏幕不写参数或值为1,那么一切还是海龟画图那样的布局。
   如果加了参数值为2,那么会形成左右布局,这个时候会有窗口会一分为二。
   左边的框架叫leftframe,右边的框架叫rightframe。它们的父(master)组件都是root。
   而角色所在的displayframe就在leftframe框架的上面。有一个叫bottomframe的框架
   在leftframe框架的下面。读者可在rightframe和bottomframe这两个框架中放置组件。
   这里需要tkinter知识,在turtle模块中它的缩写为TK。
   
   这个程序也可以通过im.convert('L')把图像变成灰度图。
   还可以通im = 255-im反转二维阵列用来生成负片效果。
   当然,对im进行各种转换,就能进行各种图像处理了。
   
"""
from sprites import *

def extractred():
    """提取红色通道"""
    imcopy = im.copy()
    pass
    
def extractgreen():
    """提取绿色通道"""
    imcopy = im.copy()
    pass
    
def extractblue():
    """提取蓝色通道"""
    imcopy = im.copy()
    pass

def extractalpha():
    """提取透明通道"""
    imcopy = im.copy()
    pass
    
screen = Screen(2)                          # 新建左右分区的屏幕对象
screen.setup(800,600)
screen.title('图像处理之RGBA通道提取')
root = screen._root
root.rightframe.config(padx=10,pady=10)

pic = 'maid.png'
im = np.array(Image.open(pic))                # im是一个二维阵列,每个数据是一个4元组像素点

girl = Sprite('maid.png',pos=(-300,0))        # 这是原图形
girl_red = Sprite(visible=False,pos=(-150,0)) # 准备用来显示只有红色通道的图形
girl_green = Sprite(visible=False,pos=(0,0))  # 准备用来显示只有绿色通道的图形
girl_blue= Sprite(visible=False,pos=(150,0))  # 准备用来显示只有蓝色通道的图形
girl_alpha= Sprite(visible=False,pos=(300,0)) # 准备用来显示只有alpha通道的图形

b1 = TK.Button(root.rightframe,text='红色通道',font=('黑体',12,'normal'),command=extractred)
b1.pack()
b2 = TK.Button(root.rightframe,text='绿色通道',font=('黑体',12,'normal'),command=extractgreen)
b2.pack()
b3 = TK.Button(root.rightframe,text='蓝色通道',font=('黑体',12,'normal'),command=extractblue)
b3.pack()
b4 = TK.Button(root.rightframe,text='透明通道',font=('黑体',12,'normal'),command=extractalpha)
b4.pack()

screen.mainloop()


需要全部源代码和素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。