OpenCV belirli alanı kesmek ( crop )

Merhaba iyi akşamlar, aşağıdaki yeşil dairenin bulunduğu alanı nasıl kesebilirim bilgilendirirseniz sevinirim.

ŞUAN:

ALMAK İSTENEN ÇIKTI:
image

KOD:

import cv2


img = cv2.imread('resim.jpg')

circle = cv2.circle(img,(220, 330), 65, (0,255,0), 5)



cv2.imshow('detected Edge',circle)
cv2.waitKey(0)
cv2.destroyAllWindows()

roi = img[330 - 65: 330 + 65, 220 - 65: 220 + 65]

Resmin belirli bölgesini aşağıda verdiğim sırayla seçebilir bu sayede o alana odaklanabilirsin.
roi = [y1: y2, x1:x2]
Küçük bir hatırlatma, roi değişkenini img değerinden doğrudan aldığın için roi üzerinde yapacağın tüm değişiklikler img üzerinde de oluşacaktır. Eğer roiyi ayrı tutmak istiyorsan resmi tuttuğun img değişkenini copy() ile kopyalayıp kopyaladağın değişken üzerinde oluşturup kullanmalısın.

konu ile alakalı değil ama hazır opencv konuşuluyorken sorayım dedim. mesela herhangi resim veya video dosyasını opencv ile açabiliyoruz. sorun şu oyun için nasıl yapılıyor ? tam bilmediğim için soruyu da soramadım. resim açar gibi mesela gta yı opencv ile açmak gibi bişey sormak istediğim ?

Opencv ile daha çok görüntü işleme üzerine çalışıyoruz. Eğer oyuna resim veya video eklemek istiyorsan yani oyun içerisinde video oynatmak ya da belirli koşullarda resim göstermek istiyorsan opencv ile uğraşmana gerek yok.

Eğer bir oyunu opencv ile çalıştırmayı soruyosan, opencv oyun çalıştırmaz ki görüntü işleme kütüphanesinin oyun açması nasıl işine yarayabilir ki?

youtube da aim bot vidyosu gördüm oyunda ki karakterleri opencv ile algılıyo galiba tam anlayamadım o yüzden sordum.

Orda da monitördeki görüntüyü eşzamanlı işleyip belirli alana yani aim’in olduğu alana düşman nesnesi belirirse oyunda ateş etmek üzerine kullanılan tuş aktifleştirilmiş ve düşmanın ölmesi sağlanmıştır. Yani oyun olduğu gibi çalışıyor, opencv ekranı işliyor ve düşmanı tespit ediyor, donanıma erişen kütüphane de tuşlara basılmasını sağlıyor.

Orda da videoyu eşzamanlı işleyip

burda neyi kast ettin anlamadım. mesela cs go aim bot video su var youtube da eğer bakarsan oyunun video su üzerinden bi işlem yapılmıyo. bandicam de mesela ekran yakalama özelliği var ya bi ekranı seçersin ve sadece o ekranı kayıt eder. galiba bu olay da bu şekilde oluyo. sadece oyunun ekranını eş zamanlı tarayan bi kod nasıl olabilir ?

Cevabınız için teşekkür ederim, resim bir karenin içerisinde daire oluyor işaretli alanları nasıl kaldırabilirim acaba (dairenin dışını) ?
image

Video derken oyunun monitördeki görüntüsünden bahsetmiştim. Hemen düzeltiyorum.

Video aslında bir çok görüntünün yanyana gelişiyle oluşuyor. Video işleme de kareler üzerinde sırayla oluyor. Oyun çalıştığı sürece ekran fotoğrafı çeken (Örneğin saniyede 60 ekran fotoğrafı çekerse 60 fps’lik ortamda tamamıyla işlenip çalışır.) ve bunları kareymiş gibi üzerinde işlem yapan ve koşullara uygun sonuç üreten program yazılabilir ki bu onlarca belki yüzlerce çözümden sadece biri. Aynı ekran fotoğrafı taktiğiyle zamanında pc ile telefon arasında bağlantı kurup, telefon kamerasından gelen görüntüyü anlık webde gösteren sistemden görüntünün ekran fotoğrafını alıp anlık gelen videoymuş gibi üzerinde işleme yapabilmiştim. Zor bir şey değildi.

Opencv de pencere çıktısının sadece dikdörtgen olduğunu biliyorum ki daha doğrusu daha önce yuvarlak bir pencereye de rastlamamıştım.
Ama çemberin dış kısmının siyah gösterilmesini istiyorsan subtract methodunu çemberin olduğu resim ile aynı resmin çembersiz haline uygularsan aynı kısımları siyaha boyar ve cemberin olduğu alanı olduğu gibi bırakır yani çemberin içindeki alan hariç her yeri siyaha boyar. Daha önce ben de yapmak istemiştim aklıma bu çözüm gelmişti ve işimi görmüştü.

Kullanım şekline baktım fakat anlayamadım acaba bir örnek atma şansınız olur mu

import cv2

img = cv2.imread("resim.jpg")
img2 = img.copy()

cv2.circle(img2, (300, 300), 100, (0, 0, 255), -1)
diff = cv2.subtract(img, img2)

cv2.imshow("diff1", diff)
cv2.waitKey(0)
cv2.destroyAllWindows()

Circle oluştururken son parametreyi -1 olarak girmelisin ki bu sayede daire oluşsun ve orjinal resimle arasındaki farka cember icindeki bölgeyi de dahil etsin.

1 Beğeni

Çok teşekkür ederim, müsait bir zamanda test edecegim :slight_smile:

1 Beğeni