Dersler

View on GitHub

EEM-241 İleri Düzey Programlama

2024-2025 Güz Dönemi

Ders 12 - OpenCV (1. ders)

import cv2
import numpy as np

Bu çalışmada images klasöründe bulunan image.jpg görüntüsü kullanılmıştır. İndirmek için tıklayınız.

img=cv2.imread("images/image.jpg")
img
    array([[[ 37,  40,  48],
            [ 42,  45,  53],
            [ 43,  49,  56],
            ...,
            [ 55,  55,  55],
            [ 53,  53,  53],
            [ 53,  53,  53]],
    
           [[ 40,  43,  51],
            [ 44,  47,  55],
            [ 46,  52,  59],
            ...,
            [ 59,  59,  59],
            [ 58,  57,  59],
            [ 56,  58,  58]],
    
           [[ 41,  46,  55],
            [ 47,  52,  61],
            [ 52,  57,  66],
            ...,
            [ 63,  65,  66],
            [ 62,  63,  67],
            [ 59,  63,  64]],
    
           ...,
    
           [[ 52, 137,  93],
            [ 45, 130,  86],
            [ 40, 125,  81],
            ...,
            [ 53, 127,  85],
            [ 57, 130,  90],
            [ 57, 130,  90]],
    
           [[ 58, 140,  97],
            [ 60, 142,  99],
            [ 51, 133,  90],
            ...,
            [ 58, 132,  90],
            [ 64, 137,  97],
            [ 64, 137,  97]],
    
           [[ 52, 134,  91],
            [ 60, 142,  99],
            [ 49, 131,  88],
            ...,
            [ 57, 131,  89],
            [ 52, 125,  85],
            [ 52, 125,  85]]], dtype=uint8)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
- okunan görüntüyü bilgisayara kaydetmek için:
cv2.imwrite("a.png", img)
True
type(img)
    numpy.ndarray
img.shape
    (280, 450, 3)
img.dtype
    dtype('uint8')
# bir pikselin alabileceği farklı değerleri sayısı:
256*256*256
    16777216
280*450*3
    378000
img.size
    378000
yukseklik, genislik, kanal = img.shape
yukseklik, genislik, kanal
    (280, 450, 3)
img_g=cv2.imread("images/image.jpg",0)
img_g.shape
    (280, 450)
cv2.imshow('image',img_g)
cv2.waitKey(0)
cv2.destroyAllWindows()
img[:3,:3,:]
    array([[[37, 40, 48],
            [42, 45, 53],
            [43, 49, 56]],
    
           [[40, 43, 51],
            [44, 47, 55],
            [46, 52, 59]],
    
           [[41, 46, 55],
            [47, 52, 61],
            [52, 57, 66]]], dtype=uint8)
img_g[:3,:3]
    array([[42, 47, 50],
           [45, 49, 53],
           [48, 54, 59]], dtype=uint8)
def mouse_event(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print(x,y)
 
img=cv2.imread("images/image.jpg")
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()
    67 58
    290 71
    200 139
def mouse_event(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print(x,y)
        print(f"x:{x},y:{y} koordinatındaki piksel değeri:\n {img[y,x]}")
 
img=cv2.imread("images/image.jpg")
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()
    23 10
    x:23,y:10 koordinatındaki piksel değeri:
     [ 9 10  8]
    372 259
    x:372,y:259 koordinatındaki piksel değeri:
     [217 230 222]
    214 165
    x:214,y:165 koordinatındaki piksel değeri:
     [ 73  37 175]
    217 251
    x:217,y:251 koordinatındaki piksel değeri:
     [152  59  38]
    53 241
    x:53,y:241 koordinatındaki piksel değeri:
     [ 37 140  89]
    116 255
    x:116,y:255 koordinatındaki piksel değeri:
     [ 78 245 236]
img[255,116]
    array([ 78, 245, 236], dtype=uint8)
img_gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_gray
    array([[ 42,  47,  50, ...,  55,  53,  53],
           [ 45,  49,  53, ...,  59,  58,  58],
           [ 48,  54,  59, ...,  65,  64,  63],
           ...,
           [114, 107, 102, ..., 106, 110, 110],
           [118, 120, 111, ..., 111, 117, 117],
           [112, 120, 109, ..., 110, 105, 105]], dtype=uint8)
def mouse_event(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print(x,y)
        print(f"x:{x},y:{y} koordinatındaki piksel değeri:\n {img[y,x]}")
        print(f"koordinatlardaki grayscale piksel değeri: {img_gray[y,x]}")
 
img=cv2.imread("images/image.jpg")
img_gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()
    374 264
    x:374,y:264 koordinatındaki piksel değeri:
     [222 233 225]
    koordinatlardaki grayscale piksel değeri: 229
    207 22
    x:207,y:22 koordinatındaki piksel değeri:
     [27 20 17]
    koordinatlardaki grayscale piksel değeri: 20
img=cv2.imread("images/image.jpg")
part=img[100:270, 120:280, :]


cv2.imshow('Parça',part)
cv2.waitKey(0)
cv2.destroyAllWindows()
tiklama_sayisi=0

def mouse_event(event,x,y,flags,param):
    global tiklama_sayisi
    if event == cv2.EVENT_LBUTTONDOWN:
        tiklama_sayisi += 1
 
img=cv2.imread("images/image.jpg")
img_gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()
print(tiklama_sayisi)
    10
tiklama_sayisi=0

sol_ust_i=None
sol_ust_j=None
sag_alt_i=None
sag_alt_j=None

def mouse_event(event,x,y,flags,param):
    global tiklama_sayisi, sol_ust_i, sol_ust_j, sag_alt_i, sag_alt_j
    if event == cv2.EVENT_LBUTTONDOWN:
        if tiklama_sayisi == 0:
            sol_ust_i = y
            sol_ust_j = x
            
            print("0",sol_ust_i, sol_ust_j)
    
        if tiklama_sayisi == 1:
            sag_alt_i = y
            sag_alt_j = x
            
            print("1",sag_alt_i, sag_alt_j)
        
        tiklama_sayisi += 1  
 
img=cv2.imread("images/image.jpg")
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()

parca = img[sol_ust_i:sag_alt_i, sol_ust_j:sag_alt_j, :]

cv2.imshow('Parça',parca)
cv2.waitKey(0)
cv2.destroyAllWindows()
    0 56 168
    1 106 218
img[56:106, 300:350] = parca
cv2.imshow('Resim',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img[56:106, 300:350] = parca
img[56:106,168:218]=255
cv2.imshow('Resim',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
tiklama_sayisi=0

sol_ust_i=None
sol_ust_j=None
sag_alt_i=None
sag_alt_j=None


def mouse_event(event,x,y,flags,param):
    global tiklama_sayisi, sol_ust_i, sol_ust_j, sag_alt_i, sag_alt_j
    global img
    if event == cv2.EVENT_LBUTTONDOWN:
        if tiklama_sayisi == 0:
            sol_ust_i = y
            sol_ust_j = x
            
            print("0",sol_ust_i, sol_ust_j)
    
        if tiklama_sayisi == 1:
            sag_alt_i = y
            sag_alt_j = x
            
            print("1",sag_alt_i, sag_alt_j)
            
        if tiklama_sayisi == 2:
            genislik = sag_alt_j-sol_ust_j
            yukseklik = sag_alt_i - sol_ust_i
            i=y
            j=x
            img[i:i+yukseklik, j:j+genislik]  = img[sol_ust_i:sag_alt_i,sol_ust_j:sag_alt_j]
            
        tiklama_sayisi += 1
 
img=cv2.imread("images/image.jpg")
cv2.imshow('Resim',img)
cv2.setMouseCallback('Resim',mouse_event)
cv2.waitKey(0)
cv2.destroyAllWindows()


cv2.imshow('Resim',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
    0 221 82
    1 269 142