TShopping

 找回密碼
 註冊
搜索
查看: 165|回復: 0

[教學] Python cv2 候選區域

[複製鏈接]
發表於 2021-4-20 22:02:29 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk  
• opencv依照顏色、紋理、大小、形狀等四種相似度進行偵測,依
你指定的方式(例如矩形)進行圈選,產生候選區域。
• ss=cv2.ximgproc.segmentation.createSelectiveSearchSegmentation()
• 代表產生一個分析後產生候選區域的物件。
• ss.setBaseImage(im)
• ss這個物件設定基礎影像
• ss.switchToSelectiveSearchFast()
• ss進行快速的物件偵測與候選• 執行之後產生候選區域
• rects=ss.process()
• 因偵測鍵盤動作關係,所以相關動作建議放在 while True迴圈內。
• 鍵盤偵測主要是進行兩部分
• numShowRects=100 #顯示的候選區域數量,值可以修改
• increment=50 #每次增加或減少的候選區域數量,值可以修改
• 鍵盤主要是ASCII碼進行偵測。
• 程式將會偵測m 、l與q這三個按鍵。
• Q:候選區域偵測可以做甚麼?
• A:
• 1.區域的資訊擷取出來後可以進行眾多圖像的CNN分類操作。
• 2.可將偵測到的區域進行裁切後儲存。
• Q:程式中鍵盤動作的目的
• A:
• 程式採用無限迴圈方式 (while True),若沒有設定暫停方式,以便改變流
程離開,程式將會永遠執行。
• 利用偵測鍵盤上的按鍵方式,讓程式能夠暫停

原圖

Python cv2 候選區域

Python cv2 候選區域

程式碼

  1. import random
  2. import cv2
  3. import numpy as np
  4. im=cv2.imread('simpsons.jpg')
  5. segmentator=cv2.ximgproc.segmentation.createGraphSegmentation(
  6.     sigma = 0.7,
  7.     k=300,
  8.     min_size =10000
  9. )
  10. segment = segmentator.processImage(im)
  11. print('以下為顏色分割影像的截取與顏色標記')
  12. seg_image = np.zeros(im.shape, np.uint8)

  13. a=0
  14. for i in range(np.max(segment)):
  15.     y, x = np.where(segment==i)
  16.     color = [random.randint(0,255),random.randint(0,255),random.randint(0,255)]
  17.     a += 1
  18.     for xi,yi in zip(x,y):
  19.         seg_image[yi,xi] = color
  20. print(a)
  21. result = cv2.addWeighted(im,0.3,seg_image,0.7,0)
  22. cv2.imshow('result',result)
  23. cv2.imwrite('10000.png',result)
  24. cv2.waitKey()
複製代碼

segmentator=cv2.ximgproc.segmentation.createGraphSegmentation(
sigma=0.5,
k=300,
min_size=1000
)
以影像為基礎的切割方式
sigma:影像平滑程度處理
k:影像切割時演算法參數
min_size: 影像切割時的最小尺寸 (因圖像偵測區域而進行切割,所以每一
個影像尺寸都會不同)

結果圖

Python cv2 候選區域

Python cv2 候選區域


• opencv若依相似度或影像進行切割,無法控制他會產生多少個結
果。
• opencv內建kmeans這種非監督式學習的分群方法,可指定分群的
數量。
• opencv的kmeans的輸入有六個參數,輸出有三個參數。• opencv的kmeans的輸入有六個參數,輸出有三個參數。
• 輸入的部分
• 1.data,樣本,影像
• 2.K,你想要規劃多少群
• 3.bestLabels,這個參數於官方文件上沒有說明,可設定為None• opencv的kmeans的輸入有六個參數,輸出有三個參數。
• 輸入的部分
• 4.規則 criteria,分群的方式,要怎麼找,原則上有三個參數的組
合,type、max_iter、epsilon。
• 設定的時候
(cv2.TERM_CRITERIA_EPS+cv2.TERM_CRITERIA_MAX_ITER,10,1.0)
TERM_CRITERIA_EPS 若達到指定的精準度(1.0)則停止查找
TERM_CRITERIA_MAX_ITER 若達到指定的周期數(10)則停止查找• opencv的kmeans的輸入有六個參數,輸出有三個參數。
• 輸入的部分
• 5.執行次數,分群時用於指定不同的初始標籤的次數,也就是你
可以反悔的次數。



 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2021-5-13 18:02 , Processed in 0.082213 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表