Opencv pythonda k-means algoritmi bilan tasvirlarga ishlov berish


K-Means algoritmi yordamida tasvirni segmentlarga ajratish


Download 0.74 Mb.
bet3/3
Sana22.10.2023
Hajmi0.74 Mb.
#1715513
1   2   3
Bog'liq
2 5267196197864481717

1. K-Means algoritmi yordamida tasvirni segmentlarga ajratish

I. Kutubxonalar va rasmlarni import qilish


Matplotlib, numpy, OpenCV -ni segmentlarga bo'linadigan rasm bilan birga import qiling
import matplotlib as plt
import numpy as np
import cv2
path = 'image.jpg'
img = cv2.imread(path)

II. Tasvirni qayta ishlash


RGB rang maydoniga aylantirish orqali tasvirni qayta ishlash. 2D vektorga aylantirish uchun uni birinchi o'q bo'ylab o'zgartiring, ya'ni agar tasvir (100,100,3) (kenglik, balandlik, kanallar) shaklida bo'lsa, u (10000,3) ga aylanadi. Keyin, uni float ma'lumotlar turiga aylantiring.
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
twoDimage = img.reshape((-1,3))
twoDimage = np.float32(twoDimage)

III. Parametrlarni aniqlash


K-Means algoritmi piksellarni to'plashi kerak bo'lgan mezonlarni aniqlang."K" o'zgaruvchisi pikselga tegishli bo'lishi mumkin bo'lgan guruhlar/guruhlar sonini belgilaydi (segmentatsiya darajasini oshirish uchun siz bu qiymatni oshirishingiz mumkin).
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K = 2
attempts=10

IV. K-Means algoritmini qo'llang


K o'zgaruvchisi tasodifiy ravishda K turli klasterlarini ishga tushiradi va "center" o'zgaruvchisi bu klasterlarning markazini aniqlaydi. Bu markazlardan har bir nuqtaning masofasi hisoblab chiqiladi va keyin ular klasterlardan biriga tayinlanadi. Keyin ular " label variable" qiymatiga ko'ra turli segmentlarga bo'linadi.
ret,label,center=cv2.kmeans(twoDimage,K,None,criteria,attempts,cv2.KMEANS_PP_CENTERS)
center = np.uint8(center)
res = center[label.flatten()]
result_image = res.reshape((img.shape))
Natija:


K-Means natijasi.

Foydalanilgan adabiyotlar.

  1. Image segmentation in OpenCV and Python. D.R.Xasanov,M.R.Tojiyev, O.D.Primqulov. Journal Academica Vol.10,Issue 12,December 2020. India

  2. Gonzalez Rafael C., Richard Woods E. Digital Image Processing – 2 nd edition.2012

  3. https://machinelearningknowledge.ai/image-segmentation-in-python-opencv

Download 0.74 Mb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling