Nesne algılamada hata

Arkadaşlar videodan nesne tanımlama ile ilgili bir kod yazıyorum ama bu hatayı alıyorum sürekli yardım eder misiniz , sürüm 3.9.2
kodum:

import cv2

cap=cv2.VideoCapture("ucak.mp4")

fgbg=cv2.createBackgroundSubtractorMOG2(detectShadows=False)

while(1):

    ret ,frame=cap.read()

    fgmask = fgbg.apply(frame)

    median = cv2.medianBlur(fgmask,3)

    (contours,hierarchy)=cv2.findContours(median.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

    for c in contours:

        if cv2.contourArea(c)<500:

            continue

        (x,y,w,h) = cv2.boundingRect(c)

        cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),3)

    background =cv2.resize(fgmask,(600,360))

    frame = cv2.resize(frame,(600,360))

    cv2.imshow("background",background)

    cv2.imshow("frame",frame)

    k=cv2.waitKey(1)& 0xff

    if k==27:

        break

cap.release()

cv2.destroyAllWindows()

“ucak.mp4” dosyasını paylaşabilir misiniz?

video bu hocam buraya masaustumden mp4 video formatı kabul etmedıgı için bu şekilde attım.

1 Beğeni

Python’da bir sorun oluştu, düzeltip denemeye çalışıyorum.

1 Beğeni

Merhabalar,

Sorunu çözemedim ancak hata bir şeylere engel olmuyor. Ancak kod kesinlikle daha iyi hale getirilmeli. Boş zamanım olduğu zaman, kodu geliştirmeye çalışabilirim. Ama LGS’ye çalışmam gerekiyor ve tek yapabileceğim size aldığım çıktıları vermek :

teşekkür ederim , peki bende sorun yaratan şey nedir sizce ?

yardımcı olursan sevinirim müsait olunca , sağol tekrar :slight_smile:

Yazdığım gibi, ben de hata alıyorum ama çalıştırabiliyorum. PyCharm değil de IDLE üzerinden çalıştırmayı dener misiniz?

aynı şey de bende oldu çalışıyor ama dediğin gibi kodda düzenleme gerekmete … :frowning:

1 Beğeni

@Burak_CELIK tekrardan merhabalar!

Şöyle bir kod yazıp çıktıyı kaydettim. Bence arkada açılan siyah-beyaz videodan daha iyi oldu :


Kodlar :

import cv2

def sketch(image):
	img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
	
    img_gray_blur = cv2.GaussianBlur(img_gray, (5,5), 0)
	
	canny_edges = cv2.Canny(img_gray_blur, 10, 50)
	
	ret, mask = cv2.threshold(canny_edges, 70, 255, cv2.THRESH_BINARY_INV)
	return mask
	
	
cap = cv2.VideoCapture("ucak.mp4")	

while True:
	ret, frame = cap.read()
	cv2.imshow("Video", sketch(frame))
	if cv2.waitKey(1) == 13: #Enter ile cikis
		break
		
cap.release()
cv2.destroyAllWindows()

eline sağlık kardesım ama , ucak dısındakı dıger hareketlı cısımler ıcınde kenar çizdiği için tam olarak işlevsel olamıyor benım ıcın

Attığım son çıktı gayet yeterli aslında. Kenar çizince işlevi de artıyor haliyle.