首页
/
每日頭條
/
生活
/
opencv圖像處理的原理
opencv圖像處理的原理
更新时间:2025-06-01 22:32:29

主要是 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
推荐阅读
魂鬥羅歸來手遊排位賽
魂鬥羅歸來手遊排位賽
魂鬥羅歸來中的PVP模式就是PK模式也就是我們的英雄戰場,也可以說是排位賽,我們天天打的排位賽就叫做PVP,那麼下面我帶大家了解下PVP模式和PVP攻略,一起來看下吧。點擊下載最新『魂鬥羅歸來安卓包』,即可獲得極品武器30連抽,極品武器等你...
2025-06-01
老子姓什麼
老子姓什麼
老子姓什麼?老子,姓李名耳,字聃,一字伯陽,或曰谥伯陽春秋末期人,生卒年不詳,出生于周朝春秋時期陳(後入楚)國苦縣(古縣名)中國古代思想家、哲學家、文學家和史學家,道家學派創始人和主要代表人物,我來為大家科普一下關于老子姓什麼?以下内容希望...
2025-06-01
幽谷俊山碧波蕩漾
幽谷俊山碧波蕩漾
2019-03-0600:01|蒼南旅遊等下次放長假,真是還有好久,為時間緊迫無法去遠方旅行而發愁嗎?不要緊,山海蒼南能滿足你,隻要你抽出個一天半天,也能享受遊玩的樂趣和風景的旖旎。COMEON!你不能錯過的浙南九寨溝莒溪春寒料峭,而無論你...
2025-06-01
周公解夢夢到青苗是什麼意思
周公解夢夢到青苗是什麼意思
周公解夢夢到青苗是什麼意思?夢見青翠茁壯的幼苗,這是一種名譽、财富和成功的象征,表示你個人将會得到财富和成功,下面我們就來聊聊關于周公解夢夢到青苗是什麼意思?接下來我們就一起去了解一下吧!周公解夢夢到青苗是什麼意思夢見青翠茁壯的幼苗,這是一...
2025-06-01
初學者修眉畫眉全過程
初學者修眉畫眉全過程
作為面部妝容的重要組成部分眉妝潮流也是瞬息萬變這幾年我們就經曆了粗平眉、流星眉、一字眉、新月眉、落尾眉野生眉、柳葉眉、歐式挑眉...▼.眉毛變一變果然是氣質大不同但是眉形并不是跟随潮流就是好看的适合自己才是最重要的不清楚自己的臉型适合什麼樣...
2025-06-01
Copyright 2023-2025 - www.tftnews.com All Rights Reserved