2018-08-13

記錄點滴

  • 非極大抑制
import numpy as np
from numpy import *
# boxes is a list of size (n x 5) (x1, y1, x2, y2, score)
# trial is a numpy array of size (n x 5)

def nms (boxes,overlap):
  if not boxes:
        pick = []
    else:
        trial = zeros((len(boxes),5),dtype=float64)
        trial[:] = boxes[:]
        x1 = trial[:,0]
        y1 = trial[:,1]
        x2 = trial[:,2]
        y2 = trial[:,3]
        score = trial[:,4]
        area = (x2-x1+1)*(y2-y1+1)
    
        #vals = sort(score)
        I = argsort(score)  # sort by score, from the smallest to biggest
        pick = []
        count = 1
        while (I.size!=0):
            #print "Iteration:",count
            last = I.size
            i = I[last-1]
            pick.append(i)
            suppress = [last-1]
            for pos in range(last-1):
                j = I[pos]
                xx1 = max(x1[i],x1[j])
                yy1 = max(y1[i],y1[j])
                xx2 = min(x2[i],x2[j])
                yy2 = min(y2[i],y2[j])
                w = xx2-xx1+1
                h = yy2-yy1+1
                if (w>0 and h>0):
                    o = w*h/area[j]
                    print "Overlap is",o
                    if (o >overlap):
                        suppress.append(pos)
            I = delete(I,suppress)
            count = count + 1
return pick
  • 根據圖片中物體顏色實現物體分割
from moviepy.editor import VideoFileClip
import cv2
import numpy as np
import os
def process_1(img):
    mask = cv2.inRange(img, (36, 0, 0), (70, 255,255))
    mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)))
    mask = cv2.Canny(mask, 100, 300)
    mask = cv2.GaussianBlur(mask, (1, 1), 0)
    mask = cv2.Canny(mask, 100, 300)
    im2, cnts, hierarchy = cv2.findContours(mask.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
    cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:5]
    cv2.drawContours(img, cnts, -1, (0,255,0), 3)
    return img

def process_2(img):
    mask = cv2.inRange(img, (36, 0, 0), (70, 255,255))
    mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)))
    mask = cv2.Canny(mask, 100, 300)
    mask = cv2.GaussianBlur(mask, (1, 1), 0)
    mask = cv2.Canny(mask, 100, 300)
    im2, cnts, hierarchy = cv2.findContours(mask.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
    cnts = sorted(cnts, key = cv2.contourArea, reverse = True)[:5]
    rects = []
    for c in cnts:
        peri = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * peri, True)
        x, y, w, h = cv2.boundingRect(approx)
        if h >= 15:
            # if height is enough
            # create rectangle for bounding
            rect = (x, y, w, h)
            rects.append(rect)
            cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 1)# get largest five contour area
    ## slice the green
    imask = mask>0
    green = np.zeros_like(img, np.uint8)
    green[imask] = img[imask]
    return img

cap = cv2.VideoCapture('./greenObject.mp4',0)
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret is True:
        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        im_process = process_{optional}(hsv)
    #     x, y, w, h = cv2.findNonZero(im_process)
        im_process = cv2.cvtColor(im_process, cv2.COLOR_HSV2BGR)
        cv2.imshow('frame',im_process)
    if cv2.waitKey(1) & 0xFF == ord('q'):
            break
cap.release()
cv2.destroyAllWindows()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末宿饱,一起剝皮案震驚了整個濱河市纠脾,隨后出現的幾起案子蝉衣,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妇汗,死亡現場離奇詭異孩革,居然都是意外死亡,警方通過查閱死者的電腦和手機惶翻,發(fā)現死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門姑蓝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吕粗,你說我怎么就攤上這事纺荧。” “怎么了颅筋?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵宙暇,是天一觀的道長。 經常有香客問我议泵,道長客给,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任肢簿,我火速辦了婚禮靶剑,結果婚禮上,老公的妹妹穿的比我還像新娘池充。我一直安慰自己桩引,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布收夸。 她就那樣靜靜地躺著坑匠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卧惜。 梳的紋絲不亂的頭發(fā)上厘灼,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音咽瓷,去河邊找鬼设凹。 笑死,一個胖子當著我的面吹牛茅姜,可吹牛的內容都是我干的闪朱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奋姿!你這毒婦竟也來了锄开?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤称诗,失蹤者是張志新(化名)和其女友劉穎萍悴,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體寓免,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡癣诱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了再榄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狡刘。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖困鸥,靈堂內的尸體忽然破棺而出嗅蔬,到底是詐尸還是另有隱情,我是刑警寧澤疾就,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布澜术,位于F島的核電站,受9級特大地震影響猬腰,放射性物質發(fā)生泄漏鸟废。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一姑荷、第九天 我趴在偏房一處隱蔽的房頂上張望盒延。 院中可真熱鬧,春花似錦鼠冕、人聲如沸添寺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽计露。三九已至,卻和暖如春憎乙,著一層夾襖步出監(jiān)牢的瞬間票罐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工泞边, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留该押,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓繁堡,卻偏偏與公主長得像沈善,于是被迫代替她去往敵國和親乡数。 傳聞我的和親對象是個殘疾皇子椭蹄,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容

  • You-Get 使用方法 voQuan關注 2017.02.23 15:38*字數 2600閱讀 21425評論 ...
    一瓶百無聊賴閱讀 317評論 0 0
  • 親愛的小寶貝绳矩,媽媽真的要謝謝你這個小靈精罩润,不僅圓了我演戲的夢,還帶給我無窮的樂趣翼馆。你想要演戲割以,那就盡情的演吧,媽媽...
    十佳九慕閱讀 477評論 0 7
  • 很高興與大家在電臺見面应媚,歡迎收聽廣播校園聯盟严沥,我是來自興安師范的阿森,我是穩(wěn)穩(wěn) 穩(wěn)穩(wěn):阿森中姜,話說這是你第二次來電臺...
    帥氣的阿森閱讀 193評論 0 1
  • 這個故事并不真實消玄,但我有一種講述的欲望,盡管大人們都曾教導我們要講真實的話丢胚,做真實的事翩瓜,但我覺得我快要真正地成人了...
    郁衡子閱讀 1,337評論 8 3