最近老師留了幾個作業,雖然用opencv很簡單一句話就出來了,但是還沒用python寫過。在官方文檔中的tutorial中的threshold里,看到可以創建兩個滑動條來選擇type和value,決定用python實現一下
注意python中的全局變量,用global聲明
開始出現了一些問題,因為毀掉函數每次只能傳回一個值,所以每次只能更新value,后來就弄了兩個毀掉函數,這個時候,又出現了滑動其中一個,另一個的值就會變為默認值的情況,這個時候猜想是全局變量的問題,根據猜想改動之后果然是。
感覺還有更簡單的方法,不需要設置兩個回調參數,對python不是很熟悉,時間有限,先不折騰了
python+opencv實現高斯平滑濾波
python+opencv實現霍夫變換檢測直線
(2016-5-10)到OpenCV-Python Tutorials's documentation!可以下載
代碼
# -*- coding: utf-8 -*- import cv2#兩個回調函數def thresholdType(threshold_type): global THRESHOLD_TYPE THRESHOLD_TYPE = threshold_type print threshold_TYPE, threshold_VALUE ret, dst = cv2.threshold(scr, THRESHOLD_VALUE, max_value, THRESHOLD_TYPE) cv2.imshow(window_name,dst)def thresholdValue(threshold_value): global THRESHOLD_VALUE THRESHOLD_VALUE = threshold_value print threshold_TYPE, threshold_VALUE ret, dst = cv2.threshold(scr, THRESHOLD_VALUE, max_value, THRESHOLD_TYPE) cv2.imshow(window_name,dst)#全局變量""""Type: 0: Binary 1: Binary Inverted 2: Truncate 3: To Zero 4: To Zero Inverted""""THRESHOLD_VALUE = 0THRESHOLD_TYPE = 3max_value = 255max_type = 4max_BINARY_value = 255window_name = "Threshold Demo"trackbar_type = "Type"trackbar_value = "Value"#讀入圖片,模式為灰度圖,創建窗口scr = cv2.imread("G:/homework/SmallTarget.png",0)cv2.namedWindow(window_name)#創建滑動條cv2.createTrackbar( trackbar_type, window_name, / threshold_type, max_type, thresholdType)cv2.createTrackbar( trackbar_value, window_name, / threshold_value, max_value, thresholdValue )#初始化thresholdType(0)if cv2.waitKey(0) == 27: cv2.destroyAllWindows()執行
import threshold>>> reload(threshold)0 02 01 01 11 21 31 41 51 61 71 81 101 121 131 161 18

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。
新聞熱點
疑難解答