首页
/
每日頭條
/
生活
/
opencv圖像處理的原理
opencv圖像處理的原理
更新时间:2024-12-28 17:29: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
推荐阅读
拼多多提現600需要多少人
拼多多提現600需要多少人
最近有很多小夥伴對拼多多的助力活動感興趣,其中拼多多600元現金紅包助力吸引無數用戶參與。那麼,拼多多提現600需要多少人?有人助力成功600元提現嗎?很多用戶都是第一參與拼多多現金紅包助力,大家對這個活動說需要的人數助力也咨詢比較多,下面來看下介紹。拼多多提現600需要多少人現在想要成功提現600...
2024-12-28
男士連帽衛衣如何搭配
男士連帽衛衣如何搭配
1、衛衣疊上風衣。風衣是秋季出街的首選之一,無論刮風下雨一件風衣總是能幫助你低于風寒,連帽衛衣搭配風衣減齡效果也絕對不能看,在視覺上也會顯得更加休閑随意,陽光健康的味道就這樣由内而外散發出來,非常的吸引人。2、衛衣疊上大衣。簡約又溫暖的大衣總是給人一種沉穩又有内涵的感覺,很有暖男的氣質感,用休閑的連...
2024-12-28
白色衣服上的鐵鏽怎麼去除
白色衣服上的鐵鏽怎麼去除
1、酸奶除鏽法,将鏽迹處用水浸濕,然後塗上酸奶,再抹上肥皂,即可洗幹淨了。2、可用2%的草酸溶液在5...
2024-12-28
24小時之内死的螃蟹還能吃嗎 怎麼看螃蟹死沒死
24小時之内死的螃蟹還能吃嗎 怎麼看螃蟹死沒死
螃蟹是生活中很常見的一種食物,它的做法比較多,可以蒸着吃,可以煮着吃,還可以炒着吃等等,味道都是很不錯的。螃蟹一般要吃鮮活的,死掉的螃蟹是不能吃的,即使是在24小時内死掉的螃蟹也不建議食用,以免引起身體不适。24小時之内死的螃蟹還能吃嗎不能再吃了。螃蟹一般建議現在就烹饪和食用,而保存完好的螃蟹可以适...
2024-12-28
一整根熬夜水喝了之後不能吃什麼 一整根熬夜水可以續杯幾次
一整根熬夜水喝了之後不能吃什麼 一整根熬夜水可以續杯幾次
一整根熬夜水是有飲食禁忌的,喝了一整根熬夜水後是不能喝咖啡、茶葉以及蘿蔔等食物的,有可能是相克的原因,在一整根熬夜水包裝上就有說明,所以大家想要養生會提神的話,喝一整根熬夜水時就需要避開其他食物哦!一整根熬夜水喝了之後不能吃什麼人工種植五年以下的人參,裡面還添加了杭白菊食用茉莉花~玻璃瓶超有感覺,打...
2024-12-28
Copyright 2023-2024 - www.tftnews.com All Rights Reserved