• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Python環(huán)境下的圖片分層軟件設(shè)計

      2020-02-14 06:03:57朱榮剛翟震王晨曦高江巖
      科技創(chuàng)新與應(yīng)用 2020年2期
      關(guān)鍵詞:雕刻軟件

      朱榮剛 翟震 王晨曦 高江巖

      摘 ?要:文章首先介紹了圖片分層的應(yīng)用領(lǐng)域,接著闡述了利用Python語言對圖片進(jìn)行分層的具體設(shè)計過程,包括編程語言的選擇、二值化的設(shè)計思路,即先對圖像進(jìn)行灰度化,再進(jìn)行閥值化處理,對圖像特征按照灰度級進(jìn)行提取,進(jìn)而實現(xiàn)分層的操作及分層后的文件處理,最后給出了部分程序和運行結(jié)果。

      關(guān)鍵詞:Python;圖片分層;軟件;雕刻

      中圖分類號:TP312 文獻(xiàn)標(biāo)志碼:A ? ? ? ? 文章編號:2095-2945(2020)02-0035-03

      Abstract: This paper first introduces the application field of picture layering, and then expounds the specific design process of picture layering by using Python language, including the selection of programming language and the design idea of binarization, that is, graying the image first. Then it carries on the threshold processing, extracts the image features according to the grayscale, and then realizes the layered operation and file processing after layering. Finally, some programs and running results are given.

      Keywords: Python; image layering; software; engraving

      前言

      隨著生活水平的提高,人們對手工藝品的需求日益增多,其中以木雕、烙畫等居多。傳統(tǒng)的生產(chǎn)模式是純手工制作,不僅耗時耗力,而且次品率很高。目前,各類激光雕刻設(shè)備日趨增多,技術(shù)較為成熟,但基本上是雕刻平面圖形。對于富有質(zhì)感的雕刻畫,需要對圖片進(jìn)行分層處理,確定每層的雕刻參數(shù)。如果利用PS等軟件進(jìn)行處理,過程復(fù)雜,速度慢,精度也差,因此需要編寫專門的軟件,該軟件可以實現(xiàn)對JPG、PNG圖片的快速分層。

      1 方案設(shè)計

      1.1 編程語言選擇

      Python是一種面向?qū)ο笮湍_本語言,Python具有語法簡潔而高效、一次編譯處處能運行、擁有包羅幾乎所有常見功能的庫、適合快速開發(fā)等特點,已經(jīng)成為最流行的腳本語言之一[1]。

      因為Python語言語法簡潔、清晰,具有豐富強(qiáng)大的庫[1],所以使用Python語言開發(fā)該圖像分層軟件最合適。通過Python語言可以設(shè)計出便于操作、實用性強(qiáng)的圖片分層軟件,該軟件在后臺對分層模式的參數(shù)設(shè)定,可以實現(xiàn)對圖片的快速分層。軟件以雕刻立體感圖片為主要目的,編寫出以Python腳本語言為依托的圖片分層軟件,該圖片分層軟件可以通過對模式的選擇將輸入的圖片進(jìn)行分層處理,之后將分層后的圖片傳送給雕刻機(jī),雕刻機(jī)在木板等具有一定厚度的材料上雕刻出具有層次感的圖畫,如景區(qū)圖片和人物肖像等,最終制作出高檔的禮品或紀(jì)念品。

      1.2 設(shè)計思路

      軟件采用二值化技術(shù)對圖像進(jìn)行分層處理。首先對圖像進(jìn)行灰度化,再進(jìn)行閥值化處理,對圖像特征按照灰度級進(jìn)行提取,閥值化可以根據(jù)灰度圖片本身設(shè)置閥值,也可以根據(jù)graythresh函數(shù)自動設(shè)置閥值[2]。為了減少工作人員的工作量、提高圖片分層的效率、使軟件具有較強(qiáng)的實用性、滿足實際工作中對分層圖片的特殊要求,可以根據(jù)圖片的實際分層效果選擇合適的分層模式,而且能根據(jù)客戶要求隨時對參數(shù)進(jìn)行修改。分層處理后得到的分層圖片格式、大小一致,可以在軟件主界面觀察分層圖片并和原圖進(jìn)行對比,滿足客戶特定的打印需求[3]。該軟件對于工藝品制造業(yè)、旅游景點的紀(jì)念品加工行業(yè)具有重大意義,將會帶來巨大的經(jīng)濟(jì)效益。

      系統(tǒng)主界面包含兩大模塊。第一個模塊是圖片處理程序,該模塊可以將輸入進(jìn)來的圖片進(jìn)行二值化、閥值化處理,隨后將分層后的圖像自動保存到指定文件夾,之后可以將這些圖片輸送給雕刻機(jī),指導(dǎo)雕刻機(jī)雕刻出具有立體感的工藝品[4]。第二個模塊是圖片預(yù)覽程序,處理后的圖片將會被保存到同一個指定文件夾下[5],該模塊就是將指定文件夾內(nèi)的圖片導(dǎo)出顯示在系統(tǒng)主界面的圖片預(yù)覽區(qū)域,并且按照圖片生成時間排序,可以上下翻動預(yù)覽圖片[6]。

      該系統(tǒng)主要適合對肖像圖以及風(fēng)景圖片進(jìn)行處理,打印出來的圖片可以作為一種高檔的禮物或者旅游紀(jì)念品,具有很高的經(jīng)濟(jì)前景。

      2 軟件設(shè)計

      2.1 功能需求

      要求輸入圖片文件的格式為:jpg、bmp、png,最大1080*1920(像素),經(jīng)過分層后輸出同樣格式的文件3-7個(視精度情況選擇)。同時要求對于輸入的圖片在后臺的處理時間不超過2秒。

      2.2 主界面設(shè)計

      如圖1所示,軟件提供了三種分層模式可供選擇。首先調(diào)入原始圖片,點擊相應(yīng)的分層模式按鈕后,就可以選擇要處理的圖片,選中的圖片將會被擴(kuò)大/縮小到指定大小,在原圖位置處顯示,方便與處理后的圖片進(jìn)行對比[7]。

      軟件主界面的右側(cè)是圖片預(yù)覽區(qū),圖片預(yù)覽程序?qū)逊謱雍蟮膱D片保存到默認(rèn)的文件夾,文件夾里的圖片按照生成時間先后進(jìn)行排序,在主界面的圖片預(yù)覽區(qū)域顯示,每次只顯示一張圖片。圖片翻頁時需要點擊圖片預(yù)覽區(qū)域右側(cè)的“上一張”、“下一張”按鈕,當(dāng)圖片翻到最后一頁時繼續(xù)翻頁將會有系統(tǒng)提示[8]。

      2.3 程序設(shè)計

      本軟件使用了兩個庫進(jìn)行設(shè)計:Tkinter庫主要支持了該軟件編寫過程中所涉及到的核心窗口部件;cv2庫主要引用于該軟件在圖片處理程序部分[9]。

      因限于篇幅僅列出閥值程序。

      def q0():#全局閾值

      def threshold_demo(image):

      gray=cv.cvtColor(image,cv.COLOR_RGB2GRAY) #把輸入圖像灰度化

      #直接閾值化是對輸入的單通道矩陣逐像素進(jìn)行閾值分割。

      ret,binary=cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_TRIANGLE)

      print(“threshold value %s”%ret)

      cv.namedWindow(“binary0”, cv.WINDOW_NORMAL)

      cv.imwrite('D:\w00.png', binary)

      cv.imshow(“D:\w00.png”, binary)

      cv.destroyAllWindows() #局部閾值

      def local_threshold(image):

      gray=cv.cvtColor(image,cv.COLOR_RGB2GRAY)#把輸入圖像灰度化

      #自適應(yīng)閾值化能夠根據(jù)圖像不同區(qū)域亮度分布,改變閾值

      binary=cv.adaptiveThreshold(gray,255,cv.ADAPTIVE_T

      HRESH_GAUSSIAN_C,cv.THRESH_BINARY,25,10)

      cv.namedWindow("binary1",cv.WINDOW_NORMAL)

      cv.imwrite('D:\w01.png',binary)

      cv.imshow("D:\w01.png",binary)

      cv.destroyAllWindows()

      def custom_threshold(image):#用戶自己計算閾值

      gray=cv.cvtColor(image,cv.COLOR_RGB2GRAY)#把輸入圖像灰度化

      h,w=gray.shape[:2]

      m=np.reshape(gray,[1,w*h])

      mean=m.sum()/(w*h)

      print("mean:",mean)

      ret,binary=cv.threshold(gray,mean,255,cv.THRESH_B

      INARY)

      cv.namedWindow("binary2",cv.WINDOW_NORMAL)

      cv.imwrite('D:\w02.png',binary)

      cv.imshow("D:\w02.png",binary)

      cv.destroyAllWindows()

      src=cv.imread(filename)

      cv.namedWindow('input_image',cv.WINDOW_NORMAL)

      #設(shè)置為WINDOW_NORMAL可以任意縮放

      cv.imshow('input_image',src)

      threshold_demo(src)

      local_threshold(src)

      custom_threshold(src)

      cv.waitKey(0)

      cv.destroyAllWindows()

      2.4 運行結(jié)果

      該軟件提供了三種分層模式,分別是粗略模式、普通模式和精細(xì)模式。圖2列出了粗略模式的運行結(jié)果,該模式將所選圖片進(jìn)行3層細(xì)分,處理后將得到尺寸相同的三個圖片文件[3]。

      3 結(jié)束語

      該軟件實現(xiàn)了預(yù)期功能,能夠一鍵對輸入的圖片進(jìn)行分層處理,并且提供了三種分層模式供用戶選擇,實用性強(qiáng),滿足了用戶的實際需求。不足之處在于需要安裝Python系統(tǒng)及第三方庫,圖片處理的精度仍有提高的余地。

      參考文獻(xiàn):

      [1]王常衡,李嘉偉,羅欽,等.淺析Python語言及其應(yīng)用前景[J].計算機(jī)產(chǎn)品與流通,2019(04):146.

      [2](美)Watts S. Humphrey.軟件工程規(guī)范[M].清華大學(xué)出版社,2004.

      [3]李俊.python趣味圖像處理[J].電子制作,2013(17):71.

      [4]楊佩璐,宋強(qiáng).Python寶典[M].電子工業(yè)出版社,2014.

      [5]呂云翔,趙天云,張元.Python大學(xué)教程[M].電子工業(yè)出版社,2017.

      [6]江開耀,張俊蘭,李曄.軟件工程[M].西安:電子科技大學(xué)出版社,2003.

      [7]陳之堯.基于OpenCV-Python的圖像分割技術(shù)的設(shè)計與應(yīng)用研究[J].中國新通信,2018,20(19):89.

      [8]戴維I.施奈德,車萬翔.Python程序設(shè)計[M].機(jī)械工業(yè)出版社,2016.

      [9]湯韜.Python庫簡介[J].程序員,2006(6):62-63.

      猜你喜歡
      雕刻軟件
      禪宗軟件
      英語文摘(2021年10期)2021-11-22 08:02:26
      軟件對對碰
      On art
      雕刻樹葉
      紅木家具一定雕刻繁冗?
      談軟件的破解與保護(hù)
      精品(2015年9期)2015-01-23 01:36:01
      豐富多彩的Android軟件
      漢代雕刻
      雕塑(1995年1期)1995-07-15 02:38:16
      札达县| 曲周县| 清原| 永顺县| 九龙城区| 台江县| 宜宾市| 洪湖市| 龙海市| 兴安县| 永年县| 塘沽区| 西畴县| 贵定县| 铅山县| 秦安县| 永定县| 山阳县| 漳浦县| 扎赉特旗| 儋州市| 灵璧县| 平利县| 乌审旗| 宁阳县| 永善县| 河间市| 福清市| 台山市| 大理市| 台北市| 南皮县| 揭阳市| 团风县| 华宁县| 富平县| 定边县| 嘉荫县| 宝应县| 鸡东县| 肥乡县|