<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
之前下載來zip包的漫畫,裡面的圖片都是兩張一起的:
但是某些漫畫檢視軟體不支援自動分屏,看起來會比較不舒服,所以只能自己動手來切分。
Python有不少的庫支援圖片操作,其中比較著名的一個是OpenCV。
OpenCV是一個跨平臺的計算機視覺庫,Python下有它的介面實現。
Python預設不帶OpenCV,所以需要先用pip下載:
OpenCV功能強大,這裡用來做圖片的切分其實是牛刀小試。
關於OpenCV的功能,這裡不多介紹,有興趣的可以找其它的資料。
為了在程式碼中使用OpenCV,首先需要import相關的庫:
import cv2 # Should be install independently.
然後是讀取圖片:
img1 = cv2.imread(filename)
然後做切割:
# shape[0]:height shape[1]:width shape[2]:channel # img[y0:y1, x0:x1] 0=(left up) 1=(right low) slice1 = img[0:height, width/2:width]
這裡實際上就是指定圖片框體,需要的兩個值是左上角和右下角座標,只是對應的方式有些詭異,不知道為什麼要這樣對應。
然後是回寫圖片:
cv2.imwrite(getname(index1), slice1, [int(cv2.IMWRITE_PNG_COMPRESSION), 1])
此外,為了保證圖片不會太大,還可以做些壓縮:
img = cv2.resize(img1, (0, 0), fx=compressratio, fy=compressratio, interpolation=cv2.INTER_NEAREST)
以上就是涉及到圖片的基本程式碼。
下面是全部的程式碼,將它儲存到py檔案中,然後與圖片放到同一個目錄,雙擊py檔案就可以執行,並進行圖片切分:
#!/usr/bin/env python # --------------------------------------------------------------------------------- # coding=utf-8 # @File : sliceImage.py # @Author : Jiangwei # @Date : 2020/4/18 # @Desc : Slice images. # @History : # Date Author Description # 20200418 Jiangwei Created. # @Warning: # Tested in Python 2.7. # --------------------------------------------------------------------------------- import os import sys import cv2 # Should be install independently. todir = "tmp" exts = ['.jpg', '.JPG', '.png', '.PNG'] compressratio = 0.75 def listimage(adir): ''' adir : The directory name. ''' list = [] for i in os.listdir(adir): if os.path.splitext(i)[1] in exts: list.append(os.path.join(adir, i)) return list def getname(index): page = "Image%03d.png" % index return os.getcwd() + "\" + todir + "\" + page def doslice(filename, index1, index2): img1 = cv2.imread(filename) img = cv2.resize(img1, (0, 0), fx=compressratio, fy=compressratio, interpolation=cv2.INTER_NEAREST) height,width = img.shape[0:2] # shape[0]:height shape[1]:width shape[2]:channel # img[y0:y1, x0:x1] 0=(left up) 1=(right low) slice1 = img[0:height, width/2:width] cv2.imwrite(getname(index1), slice1, [int(cv2.IMWRITE_PNG_COMPRESSION), 1]) print getname(index1) slice2 = img[0:height, 0:width/2] cv2.imwrite(getname(index2), slice2, [int(cv2.IMWRITE_PNG_COMPRESSION), 1]) print getname(index2) return if __name__ == "__main__": ''' Slice images. ''' # Temperature directory for sliceped images. if not os.path.exists(todir): os.mkdir(todir) # Transverse all files and do the slice. imagelist = listimage (os.getcwd()) index = 1 for i in imagelist: print "Processing %s" % i doslice(i, index, index + 1) index += 2
切分之後的檔案會放到新建立的tmp目錄下。
下面是切換之後的效果:
程式碼寫得不怎麼樣,不過能夠用......
以上就是Python opencv應用實現圖片切分操作範例的詳細內容,更多關於Python opencv圖片切分的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45