Python ve OpenCV ile Resimlerinizi JSON Formatına Çevirin
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.