create account

Görüntülerle İlgili Temel İşlemler by hakancelik

View this thread on: hive.blogpeakd.comecency.com
· @hakancelik · (edited)
$20.81
Görüntülerle İlgili Temel İşlemler
<center>

<a href="https://www.coogger.com/@hakancelik/goruntulerle-ilgili-temel-islemler">


  <img alt="" src="https://www.coogger.com/media/images/opencv.jpg">

</a>

<a href="https://www.coogger.com/@hakancelik/goruntulerle-ilgili-temel-islemler">Read this content on coogger</a>

</center>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 136 others
properties (23)
authorhakancelik
permlinkgoruntulerle-ilgili-temel-islemler
categorycoogger
json_metadata"{"format": "markdown", "tags": ["coogger", "goruntu-islemleri", "numpy", "python", "opencv"], "app": "coogger/1.4.1", "ecosystem": {"version": "1.4.1", "body": "### Hedefler\r\n- Piksel de\u011ferlerine eri\u015fme ve bunlar\u0131 de\u011fi\u015ftirme\r\n- Resim \u00f6zelliklerine eri\u015fme\r\n- Resim B\u00f6lgesini ( alan\u0131n\u0131 ) Ayarlama (ROI)\r\n- G\u00f6r\u00fcnt\u00fcleri B\u00f6lme ve Birle\u015ftirme\r\n\r\n> Bu b\u00f6l\u00fcmdeki hemen hemen t\u00fcm i\u015flemler esas olarak **OpenCV** yerine **Numpy** ile ilgilidir. **OpenCV** ile daha iyi optimize edilmi\u015f kod yazmak i\u00e7in **Numpy**'nin iyi bir bilgisi gereklidir.\r\n\r\n## Piksel de\u011ferlerine eri\u015fme ve de\u011fi\u015ftirme\r\n\u00d6nce bir renkli resim y\u00fckleyelim:\r\n\r\n```python\r\n>>> import cv2\r\n>>> import numpy as np\r\n\r\n>>> img = cv2.imread('messi5.jpg')\r\n```\r\n\r\nBir piksel de\u011ferine sat\u0131r ve s\u00fctun koordinatlar\u0131yla eri\u015febilirsiniz.BGR g\u00f6r\u00fcnt\u00fcs\u00fc i\u00e7in, Mavi, Ye\u015fil, K\u0131rm\u0131z\u0131 de\u011ferlerin bir dizisini d\u00f6nd\u00fcr\u00fcr.Gri tonlamal\u0131 g\u00f6r\u00fcnt\u00fc i\u00e7in yaln\u0131zca kar\u015f\u0131l\u0131k gelen yo\u011funluk d\u00f6nd\u00fcr\u00fcl\u00fcr.\r\n\r\n```python\r\n>>> px = img[100,100]\r\n>>> print(px)\r\n[157 166 200]\r\n\r\n# sadece mavi pix'ele eri\u015fim\r\n>>> blue = img[100,100,0]\r\n>>> print(blue)\r\n157\r\n```\r\n\r\nPiksel de\u011ferlerini ayn\u0131 \u015fekilde de\u011fi\u015ftirebilirsiniz.\r\n\r\n```python\r\n>>> img[100,100] = [255,255,255]\r\n>>> print(img[100,100])\r\n[255 255 255]\r\n```\r\n\r\n#### Uyar\u0131 \r\n>Numpy, h\u0131zl\u0131 dizi hesaplamalar\u0131 i\u00e7in optimize edilmi\u015f bir k\u00fct\u00fcphanedir. Bu nedenle her piksel de\u011ferine eri\u015fmek ve onu de\u011fi\u015ftirmek \u00e7ok yava\u015f olacakt\u0131r\r\n\r\n#### Not\r\n>Yukar\u0131da bahsedilen y\u00f6ntem normalde dizinin bir b\u00f6lgesini se\u00e7mek i\u00e7in kullan\u0131l\u0131r, \u00f6rne\u011fin ilk 5 s\u0131ra ve son 3 s\u00fctun buna benzer. Tek tek piksel eri\u015fimi i\u00e7in, Numpy dizi y\u00f6ntemleri, array.item () ve array.itemset () daha iyi kabul edilir. Fakat her zaman bir skala d\u00f6nd\u00fcr\u00fcr. Bu nedenle, t\u00fcm B, G, R de\u011ferlerine eri\u015fmek istiyorsan\u0131z, array.item () \u00f6\u011fesini her biri i\u00e7in ayr\u0131 ayr\u0131 \u00e7a\u011f\u0131rman\u0131z gerekir.\r\n\r\nDaha iyi piksel eri\u015fme ve d\u00fczenleme y\u00f6ntemi:\r\n\r\n```python\r\n# k\u0131rm\u0131z\u0131( RED ) de\u011ferine eri\u015fme\r\n>>> img.item(10,10,2)\r\n59\r\n# k\u0131rm\u0131z\u0131 (RED) de\u011feri de\u011fi\u015ftirme\r\n>>> img.itemset((10,10,2),100)\r\n>>> img.item(10,10,2)\r\n100\r\n```\r\n\r\n## Resim \u00d6zelliklerine Eri\u015fme\r\nG\u00f6r\u00fcnt\u00fc \u00f6zellikleri, sat\u0131r say\u0131s\u0131, s\u00fctun ve kanallar, resim verileri t\u00fcr\u00fc, piksel say\u0131s\u0131 vb. I\u00e7erir.\r\n\r\nG\u00f6r\u00fcnt\u00fcn\u00fcn \u015fekline **img.shape** taraf\u0131ndan eri\u015filir. Birka\u00e7 sat\u0131r, s\u00fctun ve kanal say\u0131s\u0131 d\u00f6nd\u00fcr\u00fcr (resim renk ise )\r\n\r\n```python\r\n>>> print(img.shape)\r\n(342, 548, 3)\r\n```\r\n\r\n#### Not \r\n> Resim gri tonlamal\u0131ysa, d\u00f6nd\u00fcr\u00fclen tuple yaln\u0131zca birka\u00e7 sat\u0131r ve s\u00fctun i\u00e7erir. Bu nedenle, y\u00fcklenen g\u00f6r\u00fcnt\u00fcn\u00fcn gri tonlamal\u0131 m\u0131 yoksa renkli g\u00f6r\u00fcnt\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in iyi bir y\u00f6ntemdir.\r\n\r\nToplam piksel say\u0131s\u0131na **img.size** ile eri\u015filebilir.\r\n\r\n```python\r\n>>> print(img.size)\r\n562248\r\n```\r\n\r\nresim veri t\u00fcr\u00fc **image.dtype** taraf\u0131ndan elde edilir:\r\n\r\n```python\r\n>>> print(img.dtype)\r\nuint8\r\n``` \r\n\r\n#### Not\r\n\r\n> Hata ay\u0131klarken img.dtype \u00e7ok \u00f6nemlidir, \u00e7\u00fcnk\u00fc OpenCV-Python kodlar\u0131n da \u00e7ok say\u0131da ge\u00e7ersiz veri t\u00fcr\u00fcnden kaynaklanan hata vard\u0131r.\r\n\r\n## Image ROI\r\nBazen, belirli g\u00f6r\u00fcnt\u00fc par\u00e7alar\u0131 ile oynamak zorunda kalacaks\u0131n\u0131z.G\u00f6r\u00fcnt\u00fclerde g\u00f6z alg\u0131lamas\u0131 i\u00e7in \u00f6nce g\u00f6r\u00fcnt\u00fcn\u00fcn y\u00fcz alg\u0131lama i\u015flemini yap\u0131n, daha sonra y\u00fcz b\u00f6lgesi i\u00e7inde g\u00f6zler aran\u0131r. Bu yakla\u015f\u0131m g\u00f6z bulma do\u011frulu\u011funu art\u0131r\u0131r.\r\n\r\nBurada topu se\u00e7ip resmin ba\u015fka bir b\u00f6lgesine kopyalayaca\u011f\u0131m:\r\n```python\r\n>>> ball = img[280:340, 330:390]\r\n>>> img[273:333, 100:160] = ball\r\n```\r\n\r\n<img general=\"center br-2\" title=\"opencv\" src=\"https://www.coogger.com/media/images/opencv.jpg\">\r\n\r\n## G\u00f6r\u00fcnt\u00fc Kanallar\u0131n\u0131n Ayr\u0131lmas\u0131 ve Birle\u015ftirilmesi\r\nGerekti\u011finde bir g\u00f6r\u00fcnt\u00fcn\u00fcn B, G,R kanallar\u0131, tek tek d\u00fczlemlerine ayr\u0131labilir. Sonra, bireysel kanallar yine BGR g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturmak \u00fczere bir araya birle\u015ftirilebilir.\r\n```python\r\n>>> b,g,r = cv2.split(img)\r\n>>> img = cv2.merge((b,g,r))\r\n# veya\r\n>>> b = img[:,:,0]\r\n# Diyelim ki, t\u00fcm k\u0131rm\u0131z\u0131 pikselleri s\u0131f\u0131rlamak istiyorsan,\r\n# bunu yapmana gerek yok. Daha h\u0131zl\u0131 olan Numpy'i kullanabilirsiniz.\r\n\r\n>>> img[:,:,2] = 0\r\n```\r\n#### Not\r\n\r\n> **cv2.split()** uzun s\u011fren bir i\u015flemdir , bu nedenle yaln\u0131zca gerekirse kullan\u0131n. **Numpy** \u00e7ok daha verimlidir.\r\n\r\n## Resimler i\u00e7in S\u0131n\u0131rlar Olu\u015fturma (Padding)\r\nG\u00f6r\u00fcnt\u00fcn\u00fcn etraf\u0131nda, foto\u011fraf \u00e7er\u00e7evesi gibi bir \u00e7er\u00e7eve olu\u015fturmak istiyorsan\u0131z **cv2.copyMakeBorder()** i\u015flevini kullanabilirsiniz. Ancak konvol\u00fcsyon i\u015flemi, s\u0131f\u0131r doldurma vb. I\u00e7in daha fazla uygulama vard\u0131r. Bu i\u015flev a\u015fa\u011f\u0131daki arg\u00fcmanlar\u0131 al\u0131r:\r\n\r\n- ***src*** - input image ( resim girdisi )\r\n- ***top, bottom, left, right*** - \u00fcst, alt, sol, sa\u011f kenarl\u0131k geni\u015fli\u011fi ilgili y\u00f6ndeki piksel say\u0131s\u0131na g\u00f6re\r\n- ***borderType*** - Hangi s\u0131n\u0131r\u0131n eklenece\u011fini tan\u0131mlayan k\u0131s\u0131m. \u015eu t\u00fcrlerden biri olabilir:\r\n- ***cv2.BORDER_CONSTAN***T - Sabit renkli bir kenarl\u0131k ekler. De\u011fer sonraki arg\u00fcman olarak verilmelidir.\r\n- ***cv2.BORDER_REFLECT*** -Kenarl\u0131k, s\u0131n\u0131r \u00f6\u011felerinin ayna yans\u0131mas\u0131 olacakt\u0131r bunun gibi: fedcba | abcdefgh | hgfedcb\r\n- ***cv2.BORDER_REFLECT_101 or cv2.BORDER_DEFAULT*** - Yukar\u0131dakiyle ayn\u0131, ancak \u015fu \u015fekilde hafif bir de\u011fi\u015fiklikle: gfedcb | abcdefgh | gfedcba\r\n- ***cv2.BORDER_REPLICATE*** - Son \u00f6\u011fe, \u015fu \u015fekilde \u00e7o\u011falt\u0131l\u0131r: aaaaaa | abcdefgh | hhhhhhh\r\n- ***cv2.BORDER_WRAP*** -A\u00e7\u0131klayam\u0131yorum, \u015funa benzeyecektir: cdefgh | abcdefgh | abcdefg\r\n- ***value*** - Kenarl\u0131k t\u00fcr\u00fcn\u00fcn cv2.BORDER_CONSTANT olmas\u0131 durumunda kenarl\u0131k rengi\r\n\r\nDaha iyi anlamak i\u00e7in t\u00fcm bu kenarl\u0131k t\u00fcrlerini g\u00f6steren \u00f6rnek bir kod a\u015fa\u011f\u0131dad\u0131r:\r\n```python\r\nimport cv2\r\nimport numpy as np\r\nfrom matplotlib import pyplot as plt\r\n\r\nBLUE = [255,0,0]\r\n\r\nimg1 = cv2.imread('opencv_logo.png')\r\n\r\nreplicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)\r\nreflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)\r\nreflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)\r\nwrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)\r\nconstant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)\r\n\r\nplt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')\r\nplt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')\r\nplt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')\r\nplt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')\r\nplt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')\r\nplt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')\r\n\r\nplt.show()\r\n```\r\nA\u015fa\u011f\u0131daki sonuca bak\u0131n, ( Resim **matplotlib** ile g\u00f6sterilir, b\u00f6ylece KIRMIZI ve MAV\u0130'ler de\u011fi\u015f toku\u015f olur );\r\n\r\n<img general=\"center br-4\" title=\"opencv\" src=\"https://www.coogger.com/media/images/opencv_5MHKX6N.jpg\">"}}"
created2018-05-04 08:22:57
last_update2019-05-20 02:00:03
depth0
children2
last_payout2018-05-11 08:22:57
cashout_time1969-12-31 23:59:59
total_payout_value15.502 HBD
curator_payout_value5.305 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length295
author_reputation15,102,487,166,852
root_title"Görüntülerle İlgili Temel İşlemler"
beneficiaries
0.
accountcoogger
weight1,000
max_accepted_payout100,000.000 HBD
percent_hbd10,000
post_id53,795,178
net_rshares4,099,383,080,302
author_curate_reward""
vote details (200)
@pars11 ·
$0.02
coogger | your contribution has been approved
Congratulations, your contribution has been approved.
- Your contribution type tutorial content
------
You can contact us on [discord](https://discord.gg/q2rRY8Q).
[coogger-moderator]
👍  
properties (23)
authorpars11
permlinkre-goruntulerle-ilgili-temel-islemler-20180504t094419
categorycoogger
json_metadata""
created2018-05-04 09:44:21
last_update2018-05-04 09:44:21
depth1
children0
last_payout2018-05-11 09:44:21
cashout_time1969-12-31 23:59:59
total_payout_value0.016 HBD
curator_payout_value0.003 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length185
author_reputation13,018,135,268,251
root_title"Görüntülerle İlgili Temel İşlemler"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id53,806,232
net_rshares4,000,819,393
author_curate_reward""
vote details (1)
@postpromoter ·
re-hakancelik-goruntulerle-ilgili-temel-islemler-20180504t092530305z
You got a 1.36% upvote from @postpromoter courtesy of @hakancelik!

Want to promote your posts too? Check out the [Steem Bot Tracker website](https://steembottracker.com) for more info. If you would like to support the development of @postpromoter and the bot tracker please [vote for @yabapmatt for witness!](https://v2.steemconnect.com/sign/account-witness-vote?witness=yabapmatt&approve=1)
properties (22)
authorpostpromoter
permlinkre-hakancelik-goruntulerle-ilgili-temel-islemler-20180504t092530305z
categorycoogger
json_metadata{"app":"postpromoter/1.9.4"}
created2018-05-04 09:25:30
last_update2018-05-04 09:25:30
depth1
children0
last_payout2018-05-11 09:25:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length393
author_reputation12,722,616,650,811
root_title"Görüntülerle İlgili Temel İşlemler"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id53,803,627
net_rshares0