首页
/
每日頭條
/
生活
/
opencv圖像處理的原理
opencv圖像處理的原理
更新时间:2025-02-20 20:45:06

主要是 createTrackbar 和 getTrackbarPos的使用,在配合 opencv 用這些繪圖函數就可以完成簡單的繪制 圖闆功能。

主要使用了opencv gui功能,涉及到了下面幾個函數:

1. cv2.createTrackbar, 創建滑動條:

用法: cv2.createTrackbar(trackbarName, windowName, value, count, onChange), 參數: trackbar_name trackbar的名字 window_name trackbar父窗口的名字 函數cvGetTrackbarPos返回指定trackbar的當前位置。 示例用法:在窗口 “image”上,創建名稱為 “R”的軌迹,最小值為0,最大值為255, 回調函數為 callback(這裡回調函數沒有起作用,隻是起到占位的作用)。 cv2.createTrackbar('R','image',0, 255, callback)

2. cv2.getTrackbarPos, 獲取軌迹數值

用法:cv.getTrackbarPos(trackbarname, winname) 參數: trackbarname:軌迹欄名稱 winname:作為軌迹欄父級的窗口的名稱。 示例:獲取軌迹“R”的值,這個值就是滑動條在滑動過程中的數值, r = cv2.getTrackbarPos('R','image')

3. cv2.circle, 畫圓

用法: cv2.circle(image, center_coordinates, radius, color, thickness) 參數: image:它是要在其上繪制圓的圖像。 center_coordinates:它是圓的中心坐标。坐标表示為兩個值的元組,即(X坐标值,Y坐标值)。 radius:它是圓的半徑。 color:它是要繪制的圓的邊界線的顔色。對于BGR,我們通過一個元組。例如:(255,0,0)為藍色。 thickness:它是圓邊界線的粗細像素。厚度-1像素将以指定的顔色填充矩形形狀。

white_img = np.zeros((300,300,3), np.uint8) white_img[:] = [255,255,255] cv2.circle(white_img, (150, 150), 100, (0, 255,255), 2) ## 半徑 100, 圓環寬2pixel

opencv圖像處理的原理(從零學AI之圖像算法4)1


4. cv2.rectangle, 繪制矩形:

cv2.rectangle(img, pt1, pt2, color, thickness, lineType, shift ) 參數表示依次為: (圖片,長方形框左上角坐标, 長方形框右下角坐标, 字體顔色,字體粗細) 在圖片img上畫長方形,坐标原點是圖片左上角,向右為x軸正方向,向下為y軸正方向。左上角(x,y),右下角(x,y) ,顔色(B,G,R), 線的粗細 lineType: lineType:可以取的值有cv2.LINE_4,cv2.LINE_8,cv2.LINE_AA。其中cv2.LINE_AA的AA表示抗鋸齒,線會更平滑。

opencv圖像處理的原理(從零學AI之圖像算法4)2

5. 顔色一個簡單的繪圖闆

def demo(): def callback(x): pass # 創建圖像 img = np.zeros((300, 512, 3), np.uint8) cv2.namedWindow('image') ## 創建窗口image switch = 'ON:\nOFF' ## 開關定義,默認開啟(0) ## 創建軌迹: cv2.createTrackbar(switch, 'image', 0, 1, callback) cv2.createTrackbar('R', 'image', 180, 255, callback) cv2.createTrackbar('G', 'image', 0, 255, callback) cv2.createTrackbar('B', 'image', 0, 255, callback) while True: cv2.imshow('image', img) k = cv2.waitKey(1) & 0xFF ### 監聽鍵盤 if k == 27: break ### 獲取數值 r = cv2.getTrackbarPos('R', 'image') g = cv2.getTrackbarPos('G', 'image') b = cv2.getTrackbarPos('B', 'image') s = cv2.getTrackbarPos(switch, 'image') ### 判斷開關是否關閉 if s == 0: img[:] = [b, g, r] else: print("繪圖功能已關閉") img[:] = [255, 255, 255] ## 轉為白色 cv2.destroyAllWindows()

opencv圖像處理的原理(從零學AI之圖像算法4)3

6.增加繪圖功能

我們基于上述功能進行了改進,又添加添加了橡皮擦功能,可以繪圖、還可以寫毛筆字[摳鼻]。 大家可以通過下面的視頻感受一下:

視頻

寫毛筆字:

opencv圖像處理的原理(從零學AI之圖像算法4)4

繪圖

opencv圖像處理的原理(從零學AI之圖像算法4)5

以上就是本次分享的内容,是不是非常簡單呢?歡迎在評論區交流和讨論。

備注:免費獲取源碼,請評論區回複666。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
天堂寨曆史
天堂寨曆史
寫在出發前“天堂”二字免不了總讓聽到的人有些許向往,這兩個字似乎代表着一種凡心的追求。或許生活中摻雜了太多的苦難、坎坷、挫折或是辛酸,才會對傳說中的天堂與神靈除了懷有一顆敬拜之心外,還有對自由自在、無拘無束的生活追求。天堂寨是我不知走過多少...
2025-02-20
項目管理的兩種模型
項目管理的兩種模型
“望其轍亂,望其旗靡”出自《曹刿論戰》,講述的是在是否對敗軍進行追擊的時候,曹刿通過觀察對手敗退的慌亂無章而斷定是真的潰敗不是佯敗。王陽明在剿匪的時候分析兩股土匪的時候,曾經認為:雖然一股土匪人數多,但是交戰的時候沒有陣型,威脅性不大。但是...
2025-02-20
一日遊成都八月
一日遊成都八月
1、早上醒來刷了下朋友圈,發現有位網友去了巴郎山,在瘋狂刷屏,但是我并不反感。因為我也喜歡巴郎山,而且她刷屏也是不同的内容,是很真實的旅遊實拍圖,看得出來是被身臨其境的美麗景色刺激到所發。或許我也有被感染到,馬上就在網上搜索了些巴郎山的旅遊...
2025-02-20
五十歲退休日記
五十歲退休日記
2022年5月20日星期五天氣晴退休第61天。520,一個浪漫的日子,是不是人們想讓生活多一些儀式感呢,憑空創造出了雙十一,520,但這些都是屬于年輕人的浪漫。和先生視頻,調侃他知不知道520,理工老男人果然不知道,非常納悶地問:這是什麼節...
2025-02-20
口紅怎麼用才正确方法
口紅怎麼用才正确方法
口紅怎麼用才正确方法?首先,需要将嘴唇清洗幹淨,洗臉的時候順便清洗一下就可以,接下來我們就來聊聊關于口紅怎麼用才正确方法?以下内容大家不妨參考一二希望能幫到您!口紅怎麼用才正确方法首先,需要将嘴唇清洗幹淨,洗臉的時候順便清洗一下就可以。将唇...
2025-02-20
Copyright 2023-2025 - www.tftnews.com All Rights Reserved