1.前言
? ? ? ?使用pyqt5與opencv實現(xiàn)的圖像處理程序,已實現(xiàn)轉(zhuǎn)灰度圖、圖像平滑、形態(tài)學(xué)操作、梯度計算、閾值處理、邊緣檢測、輪廓檢測等功能。
??Pyqt5介紹:Pyqt5是基于Digia公司強大的圖形程式框架Qt5的python接口,由一組python模塊構(gòu)成。Pyqt5本身擁有超過620個類和6000函數(shù)及方法。在可以運行于多個平臺,包括:Unix, Windows, and Mac OS。??
??OpenCV介紹:OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機視覺和機器學(xué)習(xí)軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。 它輕量級而且高效--由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實時視覺應(yīng)用,并在可用時利用MMX和SSE指令, 如今也提供對于C#、Ch、Ruby,GO的支持。??
提示:對OpenCV感興趣的小伙伴們,可以看一下我寫的對OpenCV基礎(chǔ)知識進行介紹的文章。??
1.【OpenCV實戰(zhàn)教程1】OpenCV概述
2.【OpenCV實戰(zhàn)教程2】圖像處理的基本操作
3.【OpenCV實戰(zhàn)教程3】圖像數(shù)字化基礎(chǔ)(像素、色彩空間)?
2.軟件界面?
??功能代碼
使用pyqt5與opencv實現(xiàn)的圖像處理軟件的main.py文件部分代碼如下所示:
class MyApp(QMainWindow):
def __init__(self):
super(MyApp, self).__init__()
self.tool_bar = self.addToolBar('工具欄')
self.action_right_rotate = QAction(QIcon("icons/右旋轉(zhuǎn).png"), "向右旋轉(zhuǎn)90", self)
self.action_left_rotate = QAction(QIcon("icons/左旋轉(zhuǎn).png"), "向左旋轉(zhuǎn)90°", self)
self.action_histogram = QAction(QIcon("icons/直方圖.png"), "直方圖", self)
self.action_right_rotate.triggered.connect(self.right_rotate)
self.action_left_rotate.triggered.connect(self.left_rotate)
self.action_histogram.triggered.connect(self.histogram)
self.tool_bar.addActions((self.action_left_rotate, self.action_right_rotate, self.action_histogram))
self.useListWidget = UsedListWidget(self)
self.funcListWidget = FuncListWidget(self)
self.stackedWidget = StackedWidget(self)
self.fileSystemTreeView = FileSystemTreeView(self)
self.graphicsView = GraphicsView(self)
self.dock_file = QDockWidget(self)
self.dock_file.setWidget(self.fileSystemTreeView)
self.dock_file.setTitleBarWidget(QLabel('目錄'))
self.dock_file.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.dock_func = QDockWidget(self)
self.dock_func.setWidget(self.funcListWidget)
self.dock_func.setTitleBarWidget(QLabel('圖像操作'))
self.dock_func.setFeatures(QDockWidget.NoDockWidgetFeatures)
??軟件界面
使用pyqt5與opencv實現(xiàn)的圖像處理軟件界面如下所示:
看完軟件界面,接下來就詳細介紹該OpenCV圖像處理軟件的功能。??
3.軟件功能
通過該OpenCV圖像處理軟件可以實現(xiàn)的功能如下:
- 圖像旋轉(zhuǎn)
- 轉(zhuǎn)灰度圖
- 圖像平滑
- 直方圖均衡化
- 形態(tài)學(xué)操作
- 梯度計算
- 閾值處理
- 邊緣檢測
- 輪廓檢測
- 哈夫變換直線檢測
- 亮度調(diào)節(jié)
- 伽馬校正
4.操作步驟
(1)選擇圖片??
左側(cè)是目錄結(jié)構(gòu),小伙伴們可將要處理的圖片放置在目錄結(jié)構(gòu)下,要進行處理的時候選擇即可。
(2)進行操作??
選擇完圖片后,可以點擊左上角的圖像操作欄中的按鈕,以實現(xiàn)圖像的灰度化距離,點擊后,則圖片變成下列這樣,并且右側(cè)欄中會展示已選操作。
?(3)其他功能??
?可以對圖像進行疊加操作,并且支持已選操作的刪除,當(dāng)處理完成后,可將鼠標(biāo)移到圖片上,單擊右鍵進行“另存為”操作。比如對圖像進行灰度化和邊緣檢測,呈現(xiàn)的效果如下所示:
?5.源代碼
源代碼地址:鏈接:https://pan.baidu.com/s/1UmcvK3tfAP2CcoAmZORGoQ?pwd=e7qr?
提取碼:e7qr?
--來自百度網(wǎng)盤超級會員V4的分享文章來源:http://www.zghlxwxcb.cn/news/detail-720519.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-720519.html
到了這里,關(guān)于【圖像處理軟件】Pyqt5+OpenCV實現(xiàn)圖像的處理(附可視化界面+功能介紹+源代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!