python人工智能opencv工具作业:使用tkinter展示边缘检测

opencv工具作业:使用tkinter展示边缘检测

python人工智能opencv工具作业:使用tkinter展示边缘检测

图片.png

python人工智能opencv工具作业:使用tkinter展示边缘检测

图片.png

python人工智能opencv工具作业:使用tkinter展示边缘检测

图片.png

python人工智能opencv工具作业:使用tkinter展示边缘检测

原文:https://www.jianshu.com/p/3e80a0b49218

代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 技术支持:https://www.jianshu.com/u/69f40328d4f0 
# 技术支持 https://china-testing.github.io/
# https://github.com/china-testing/python-api-tesing/blob/master/practices/cv/cv1.py
# 项目实战讨论QQ群630011153 144081101
# CreateDate: 2018-12-04
# import the necessary packages
from tkinter import *
from PIL import Image
from PIL import ImageTk
from tkinter import filedialog
import cv2
def select_image():
 # grab a reference to the image panels
 global panelA, panelB
 # open a file chooser dialog and allow the user to select an input
 # image
 path = filedialog.askopenfilename()
 # ensure a file path was selected
 if len(path) > 0:
 # load the image from disk, convert it to grayscale, and detect
 # edges in it
 image = cv2.imread(path)
 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
 edged = cv2.Canny(gray, 50, 100)
 # OpenCV represents images in BGR order; however PIL represents
 # images in RGB order, so we need to swap the channels
 image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
 # convert the images to PIL format...
 image = Image.fromarray(image)
 edged = Image.fromarray(edged)
 # ...and then to ImageTk format
 image = ImageTk.PhotoImage(image)
 edged = ImageTk.PhotoImage(edged)
 # if the panels are None, initialize them
 if panelA is None or panelB is None:
 # the first panel will store our original image
 panelA = Label(image=image)
 panelA.image = image
 panelA.pack(side="left", padx=10, pady=10)
 # while the second panel will store the edge map
 panelB = Label(image=edged)
 panelB.image = edged
 panelB.pack(side="right", padx=10, pady=10)
 # otherwise, update the image panels
 else:
 # update the pannels
 panelA.configure(image=image)
 panelB.configure(image=edged)
 panelA.image = image
 panelB.image = edged
# initialize the window toolkit along with the two image panels
root = Tk()
panelA = None
panelB = None
root.title("opencv 边缘检测演示") 
# create a button, then when pressed, will trigger a file chooser
# dialog and allow the user to select an input image; then add the
# button the GUI
btn = Button(root, text="选择图片", command=select_image)
btn.pack(side="bottom", fill="both", expand="yes", padx="100", pady="100")
# kick off the GUI
root.mainloop()
展开阅读全文

页面更新:2024-02-23

标签:作业   边缘   工具   人工智能   演示   实战   原文   技术支持   代码   项目   图片   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top