基於Python實現簡易的植物識別小系統

導語

”  花草樹木 皆有呈名

熱愛自然,從認識自然開始 “

現在的植物愛好者,遇到不認得的植物。怎麼辦呢?

前幾天去逛商場,一進商城一一一一門口的花店吸引瞭我的註意:擺放在店門口的各色鮮花植物花卉真的特別好看!

忍不住進門逛瞭一圈,發現我真的不認識,種類太多,對花卉的品種瞭解頗少。

回來之後找到瞭2款簡單好用的植物識別APP一一一伴侶跟形色蠻好用的!

閑著也是閑著:默默用Python編寫瞭一款簡單的植物識別系統給大傢正好la~

正文

1)環境安裝

本文用到的環境:Python3.7  Pycharm社區版   模塊:PyQt5。

2)主程序

import sys
from PyQt5.QtWidgets import(QWidget,QApplication,QGridLayout,QLabel,
                            QLineEdit,QTextEdit,QPushButton,QFrame,QFileDialog)
from PyQt5.QtGui import QPixmap
#導入baiduAPI調用模塊
import request
class AIGUI(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
    def initUI(self):
        #關於表格類的相關初始化代碼
        #setSpacing 就是設置每個控件的外邊框
        grid=QGridLayout()
        grid.setSpacing(10)
 
        #各個控件
        #1號控件
        explain=QLabel('請選擇您要識別的圖片')
        #2號 單號文本框
        self.imgUrl=QLineEdit()
        #3號,按鈕
        self.select=QPushButton("選擇圖片")
        #為按鈕添加一個事件處理函數
        self.select.clicked.connect(self.openfile)
        #4號,圖片框
        self.imgLab=QLabel("11.png")
        self.imgLab.setFrameShape(QFrame.Box)
        #imgLab.setFrameShadow(QFrame.Raised)
        self.imgLab.setLineWidth(1)
        
        #imgLab.setPixmap(QPixmap(""))
        #5號,多行
        self.info=QTextEdit()
 
        #將控件進行合理佈局
        grid.addWidget(explain,1,0)
        grid.addWidget(self.imgUrl,1,1)
        grid.addWidget(self.select,1,2)
        grid.addWidget(self.imgLab,2,0,5,3)
        grid.addWidget(self.info,1,3,6,1)
 
        #窗口最後的設置
        self.setLayout(grid)
        
        self.setGeometry(300,300,350,300)
        self.setWindowTitle("植物識別小系統")
        self.show()
    def openfile(self):
        #打開圖片彈窗,選擇圖片
        self.select_path=QFileDialog.getOpenFileName(self,"選擇要識別的圖片","/","Imgae Files(*.jpg *.png)")
        #如果沒選擇圖片,空過
        if not self.select_path[0].strip():
            pass
        else:
            #選擇圖片後執行下面的內容
            # 設置圖片的路徑
            self.imgUrl.setText(self.select_path[0])
            #在圖片標簽框中顯示圖片
            #1)根據路徑pixmap解析圖片
            pixmap=QPixmap(self.select_path[0])
            #2)縮放圖片
            scalePixmap=pixmap.scaledToWidth(300)
            #scaledPixmap=pixmap.scaled(QSize(311,301))
            #3)顯示
            self.imgLab.setPixmap(scalePixmap)
            result=self.identify()
            self.info.setText(result)
    #借助百度AI平臺完成植物識別工作      
    def identify(self):
        result=Request.BaiduAPI(self.select_path[0])
        return result
            
 
def main():
    app=QApplication(sys.argv)
    ai=AIGUI()
    sys.exit(app.exec_())
if __name__=='__main__':
    main()

3)效果展示

第一組玫瑰花:

​第二組百合花:

 

到此這篇關於基於Python實現簡易的植物識別小系統的文章就介紹到這瞭,更多相關Python植物識別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: