Python ve OpenCV ile Resimlerinizi JSON Formatına Çevirin

0 875

Python ve OpenCV açık kaynak kodlu görüntü işleme kütüphanesini kullanarak resimlerinizi json formatında yazı olarak kaydedebilirsiniz.

JSON nedir?

JSON, tam hali ile JavaScript Object Notation (JavaScript Nesne Gösterimi) okuyup yazabilmesi oldukça kolay, uygulamalarda kolaylıkla tarayıp üzerinden ilerlenebilecek yapısal olarak oldukça hafif ve esnek bir veri değişim formatıdır ve temel amacı veri alış verişi yaparken daha küçük boyutlarda veri değiştokuşu yapmaktır. Programlama dillerinden bağımsız ancak C, C++, C#, Java, JavaScript, Perl, Python ve daha pek çok programlama diline yazılış bakımından benzeyen JSON tüm bu sebeplerden dolayı ideal bir format haline gelmektedir.

OpenCV ile Resimleri JSON Formatına Çevirme

Python ve OpenCV kullanarak resimlerimizi json formatına çevirebiliriz. Resimlerimizi json biçimine çevirip bu şekilde kullanmak bize farklı kolaylıklar sağlayacaktır.

import cv2
import base64
import json
import numpy as np


######################################################
#read image
img = cv2.imread('./code_backup/test_img.jpg')
#cv2 to string
image_string = cv2.imencode('.jpg', img)[1]
image_string = base64.b64encode(image_string).decode()
#make string image dict
dict = {'img':image_string}
#save dict to json file
with open('./code_backup/cv2string.json', 'w') as fp:
    json.dump(dict, fp, indent=5)
######################################################

JSON Dosyasından Resim Elde Etmek

ne kadar resimlerimizi Json formatına dönüştürsek te eğer geri dönüşüm yapamıyorsak bu bizim hiç bir işimize yaramaz. Json resim dosyasını tekrar OpenCV kütüphanesini kullanarak resim dosyası haline çevireceğiz.

import cv2
import base64
import json
import numpy as np


######################################################
#read json
response = json.loads(open('./code_backup/cv2string.json', 'r').read())
#get image string
string = response['img']
#convert string to image
jpg_original = base64.b64decode(string)
jpg_as_np = np.frombuffer(jpg_original, dtype=np.uint8)
img = cv2.imdecode(jpg_as_np, flags=1)
#show image
cv2.imshow('show image', img)
cv2.waitKey(0)
######################################################

Örnek olarak alttaki resmi json dosyasına dönüştürdüğümüzde elde edeceğimiz json dosyasının içeriğinin bir kısmını paylaşıyorum.

{
     "img": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBg
UGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKC
goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAKAAf0DASIAAhEBAxE
B/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBR
IhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV
1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJ
ytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQo
L/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNO
El8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUl
ZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oA
DAMBAAIRAxEAPwD89ktvnrSsLePZUMNvl9/l1pWdv5j/ALuvkJz/AHZ9IWrC38zrW9YW/l/8s+9UrC38tE4
rZsLf51rzaszSEC/YWzybPMirXtreMOtV7O3+T95WrYW8kn+rNeRiJHRGJZs7fj/V1fto6bbWfyLV+2t686
rMrlLVhGa1rXr+NZ1t8nSr8cuyuCrEovwyRxpUm8ehqilz9z+lWra4jrjlEmUy0j+Xt8ypKgT/AJ6+ZT07V
z8hJOn3RT0uPn2VB5vz06GT5+lTOkVGZdi+/VmH/rpVOHr+NX7bzNlY8nIbxmWIf3iYqdI/k/1eyooI/wDl
oPxqd5I9n7sVcIc50cwj9fwpEj8v95SU0CSPnzPuV30oBzD/ADP++qeknl7cdqixJv8A9bSJJJXqUoBGRbT
7v+rpk/yYpiSSSJxSv/zyr0aUDXmIuf7gqvcx/JVmoJvufjXbCBfOZzx+9OhjqV4/no8uP5s10BAekfaUVY
hjqHzPLq3beXUSkdMRyW8fr+NH2f5O1WEj8zbHHTtg9TXLKR1wM25t6rPb+XwK1po4tlVdn+z+lRKRX2yL
y/k/1VU7m3/eHEdaiR9qrzRx1zjMO/j+T/V1j39p8n+rror+P/YrLvI49j/u6cSJnNXVv2qnNHJsrWv7f56
pvH/sfjXVE5JGW8eP9XUTny3xVqaPy5NlV5vueXXZAzkQP/z1qvcfc/CrTx/JmqTyY/266IxOeUyCTtTXjp
z/ALz95R5fvXVGJzyIHj+epUjpH/8AQKPN9zWvKER/mfP1qe2k+TpVPefQVPbSmNOKJQLjIuUQ9PwqHzO/8
NEMlYSgaxmXHk+TFCSe33Kr7x6GnwyfO8lROBrGRK/mVBNIdlTydqq3H8VZSL5ircyd/wBaoXMnyVavJKy7
m4ojEiUiKaT5+lVZpKdc3GWqrNIdnmVUYGUpkU1xJ/8AWqlJJ83NTTSSVX3j0NdEYGEpnHw9U+tbGmx+ZzV
C2t/MrYsI49icUVZnjRNKwt/pW5pVvwtZthGPkrb02L50jrzaszSJpWdv9zEda1hb/cqnZW/3K2dNt+E/d1
5NWZ0RLUNvhKtQxgnzKIY/k61KnyV5sygSSKPpLTvtH/POSq00nz9KhT7/AO8kolHnJlM0kuPn/wBmrSSeW
ifvKy4ZP/HKnS8jk/5aVhKkTzmulz8lWEuOf9ZWRDcd6nS4k9aylSI5jU8yOT/gFTw9PwqjbXHmf8tN9Wob
jtWUoFwL9tJVy2kjrLhuK0IZP+Wlc86RvGRopJ8nm1MnX8KqWtxLv/eSVa/1np0rWMOQqMwH8X1oeP5KV+v
4Umwf89K7aUR8xEn38+ZTk/6Zx1E0kY/1ktCSeY//ALPXpUoBzFhJPLSnzeZImZJKZHLvp6R/PXo0oGsZjE
j+SmzR8fux/sVZSOmvH8ma6oxKjIzZrb/nnJTUj7Y/Crrx+ZujpkMflSeXWvKaxmV5I5I/9XUttJJ/q6sPH
H6U1LespRN4zJ4ZJNi1aSPzExVJPuinp5lZTgdEZFh4/NSqv2c/89D+VWUk8xG+7UbxyAfvPnrnlE15iJ44
9nWqTx439qvvnZ/t1BddPwrLkDmMq5jkqjdWf35PMrUmkO+qVz9z91VxgTKRz1/ZeY75kqhc2+VrcvY/Leq
U0XmJW8YHPOZzl5b1Vm+5+Nbl5bx5/wBXWXc25jfpXVAylIzZv+efl1WuZP8AnnV+aOqtzb+XXVSMJSM95P
8AnpT0k8zmnSW8nz/JUXl/JXbE5xX6/wAVR015MJ5mKekfP8Va8gDP3mynpIMUyaT5MyVGknlP5fmUcgFxJ
PkxR5kkY4P/AC0qBJ/k8zzKPtnz1EolxmXEuKekn+3+FUvtHsfzpyXAjTy6wlE1jIv/....

Sitemizde Python ve OpenCV kullanarak hazırladığımız yüz tanıma uygulaması örneği ve farklı OpenCV örnek kodlarını bulabilirsiniz.

Python öğrenmek isteyenler için hazırladığımız Python derslerine de göz atabilirsiniz.

Yorumlarınız ve sorularınızı bizimle paylaşın.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku