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
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 …
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.