前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow的图像操作

Tensorflow的图像操作

作者头像
算法之名
发布2021-11-24 17:06:43
3510
发布2021-11-24 17:06:43
举报
文章被收录于专栏:算法之名算法之名

图像数据解析

图像编码

代码语言:javascript
复制
import tensorflow as tf
import base64

if __name__ == "__main__":

    path = "/Users/admin/Documents/111.jpeg"
    img = tf.io.read_file(path)
    print("图像字节编码:{}".format(img))

    img1 = tf.io.gfile.GFile(path, 'rb')
    print("图像字节编码:{}".format(img1.readlines()))

    img_64 = tf.io.encode_base64(img)
    img_64 = format(img_64)[2:-1]
    print("网络安全Base_64编码:{}".format(img_64))

    img_b64 = list(img_64)
    img_b64_list = []
    for i in range(len(img_b64)):
        if img_b64[i] == "-":
            img_b64_list.append("+")
        elif img_b64[i] == "_":
            img_b64_list.append("/")
        else:
            img_b64_list.append(img_b64[i])
    if len(img_b64_list) % 4 != 0:
        remainder = len(img_b64_list) % 4
        for i in range(remainder):
            img_b64_list.append("=")
    img_b64 = "".join(img_b64_list)
    print("标准Base_64编码:{}".format(img_b64))

    with open(path, "rb") as f:
        img3 = f.read()
        img_stand_b64 = base64.b64encode(img3)
        img_stand_b64_str = img_stand_b64.decode("utf8")
    print("标准Base_64编码:{}".format(img_stand_b64_str))

    img_w64 = list(img_stand_b64_str)
    img_w64_list = []
    for i in range(len(img_w64)):
        if img_w64[i] == "+":
            img_w64_list.append("-")
        elif img_w64[i] == "/":
            img_w64_list.append("_")
        elif img_w64[i] == "=":
            break
        else:
            img_w64_list.append(img_w64[i])
    img_w64 = "".join(img_w64_list)
    print("网络安全Base_64编码:{}".format(img_w64))

运行结果(部分截取)

代码语言:javascript
复制
图像字节编码:b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xfe\x00*Intel(R) JPEG Library, version 1,5,4,36\x00\xff\xdb\x00C\x00\x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\x08\x07\x07\x07\x07\x0f\x0b\x0b\t\x0c\x11\x0f\x12\x12\x11\x0f\x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18!\x18\x1a\x1d\x1d\x1f\x1f\x1f\x13\x17"$"\x1e$\x1c\x1e\x1f\x1e\xff\xdb\x00C\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\xff\xc4\x01\xa2\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17\x18\x19\x1a%&\'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x11\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12AQ\x07aq\x13"2\x81\x08\x14B\x91\xa1\xb1\xc1\t#3R\xf0\x15br\xd1\n\x16$4\xe1%\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94
图像字节编码:b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xfe\x00*Intel(R) JPEG Library, version 1,5,4,36\x00\xff\xdb\x00C\x00\x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\x08\x07\x07\x07\x07\x0f\x0b\x0b\t\x0c\x11\x0f\x12\x12\x11\x0f\x11\x11\x13\x16\x1c\x17\x13\x14\x1a\x15\x11\x11\x18!\x18\x1a\x1d\x1d\x1f\x1f\x1f\x13\x17"$"\x1e$\x1c\x1e\x1f\x1e\xff\xdb\x00C\x01\x05\x05\x05\x07\x06\x07\x0e\x08\x08\x0e\x1e\x14\x11\x14\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\x1e\xff\xc4\x01\xa2\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\'
网络安全Base_64编码:_9j_4AAQSkZJRgABAQAAAQABAAD__gAqSW50ZWwoUikgSlBFRyBMaWJyYXJ5LCB2ZXJzaW9uIDEsNSw0LDM2AP_bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv_bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv_EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4-Tl5ufo6erx8vP09fb3-Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5-jp6vLz9PX29_j5-v_AABEIBDgHgAMBEQACEQEDEQH_2gAMAwEAAhEDEQA_APqOS3yOlYygjiGRwbW6UowEX4lwM10QQXJ4zg1ZSJGGRRYttFS4zjIqZGLKwY85rILlO5fnFYyepJSmJxzWbQmVzzzWdiAXJaq5RouQLnBq4I0Rq2vAFdMSjSt8GtkUi4tDNUPzxSLIZjxTRLMq-YYIrCaJOU1RgGbmvOq7iktDCuRv71zNkOJTZfWkmZiFa1TIZBMh9Klk3K7rjmspBzETnis2y1ZhbP8APzQmUolxnB71aY-UiYmi4mhFcjFS7mMkW42OMitoPQxlct27ZXmruJMdKM1LkDRVkBzQtRWHx8rzVxjctMkSIZrTksUpFqLjHFNI0uWkbNVYpMJQWHSnY1iyvswc0WNUy_aKrAZoZpFllYlzWVjVDWAWi5ZBM-7oaNAKFyT2PNGhJUaRgetKwiMy56mpaEKjjNCQtR5bPNXylIktSTKAam4M6K2i3IMV1U9hWLMUTBq1CxdRXA70XYWK2oJKycEis6jYuVGd5Mmfmya5nfqWkMkh9qVhkDw8GpAytQgyDxTFYxLlWAzSAzpZWHGTUtjSJIJW9aaYza02RiOprS6CzN-1JIGaTGWCAetQ0MryxEZxUFIrOCKaYxoOBVIBhbmqEG7kUh2LMZzik2FizGM8ipuBYWImqSJFMDZziqC47yWK9K1ixEUiEDpV3EyrMvBzWEzOb0Ma7jPmc1hI45biwjbSSIuaEEuO9OxJP5wx1oGhrTN2NM2ih0UhJ61UTeJbgdia0NEX4fmwaCrFhRkVaAYyVdgIZFrJoCu61NiWiBxtbNSxFqCQFacWFidHP41qpFJEwmYd6rmQWHwSMzcmi47F2FeQaLCZpwrkCmkRclKHFNoV0QTLkYqWhGfcQ56io5SkzOnt8Z4pOBaZRmhFZyiWmVJExms5IdysYdzVNhFu1tR3FXFAjQgiCjFapDsLJFmraERPHhTWbRLM68QmsnEVhLCMhuRRGIrGvCgwMVqolEqLg0yrDpeRzSauSVmQ5rFw1ESBDtp8orETRjuKB8q6lO9tgVJArOUOphOCsc_ch4pCMEDNZp2OOUbMlhYtSvcEX9NtpLu6WFc-p-lVSpuUikjoL02dtarFtCsOVAHIrevyQXmdtKnzHK-IPF32WIwLcfMBjiuP2tSeh6lHDW1ZwWq6vd6hIcu-3ue2K2pUm9WdllEi05Ybdsuu8nqTmuiMiXE0vtK4x8uO2K0tcXKIJZZsrEhDe_StFYTRPa2Jl-eeT6jNWiC0FsbdwVKBj196TkUlcjm1eFCVjU_lWbmzSNPuZ9zr1yD-7VyPYUK5bp2KAvNYuZDsZlU9Ce1bQM5pFlbDWpcJJqEu08q2f61ucstzXtfDYu7ZU1QCYA5DhiGH4itEZyRtWnhjTUtlSRdw6KcnIqiLsnTQtOigfdahgAeRk5p3JY200zSi5hmsXbAyp2k5HtRzCNCGz04SBkgZZF6OM81cWTJF2aK08tXRGhlPBBztcehHTNDRKZhalb23WO72Nz5eT37qaEDucHrGo3elaghiHm2jn59pyYm9QPT_AApSjcpG3odw3mB4kVEY7mEY-U564q2Zt6m5qmol4vshk3SIm6Pn_WJjsfUf0NIDkLDW_O1CXS548zrzHv4DDr09apRuFyF4LGa6ljDNCrDEkL_w57j_ABqXApSM-70W_gYIwjvIW-66Eb09_eiKCUirHp9wpJt5p7O6U8jJCOPUUSRUHfctR61qtsRFqCmYIciUcSL6MD3xWehfod14P-IEMgWO4lYuh2tuGGx_UUmUj0rSdVhmbzImDhudy9_rimRKBdukgvd27DRN3HVG9fakJuyMx0ktY9zncqtgTDpj0b0q4
标准Base_64编码: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
标准Base_64编码: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
网络安全Base_64编码:_9j_4AAQSkZJRgABAQAAAQABAAD__gAqSW50ZWwoUikgSlBFRyBMaWJyYXJ5LCB2ZXJzaW9uIDEsNSw0LDM2AP_bAEMABQMEBAQDBQQEBAUFBQYHDAgHBwcHDwsLCQwRDxISEQ8RERMWHBcTFBoVEREYIRgaHR0fHx8TFyIkIh4kHB4fHv_bAEMBBQUFBwYHDggIDh4UERQeHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHv_EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4-Tl5ufo6erx8vP09fb3-Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5-jp6vLz9PX29_j5-v_AABEIBDgHgAMBEQACEQEDEQH_2gAMAwEAAhEDEQA_APqOS3yOlYygjiGRwbW6UowEX4lwM10QQXJ4zg1ZSJGGRRYttFS4zjIqZGLKwY85rILlO5fnFYyepJSmJxzWbQmVzzzWdiAXJaq5RouQLnBq4I0Rq2vAFdMSjSt8GtkUi4tDNUPzxSLIZjxTRLMq-YYIrCaJOU1RgGbmvOq7iktDCuRv71zNkOJTZfWkmZiFa1TIZBMh9Klk3K7rjmspBzETnis2y1ZhbP8APzQmUolxnB71aY-UiYmi4mhFcjFS7mMkW42OMitoPQxlct27ZXmruJMdKM1LkDRVkBzQtRWHx8rzVxjctMkSIZrTksUpFqLjHFNI0uWkbNVYpMJQWHSnY1iyvswc0WNUy_aKrAZoZpFllYlzWVjVDWAWi5ZBM-7oaNAKFyT2PNGhJUaRgetKwiMy56mpaEKjjNCQtR5bPNXylIktSTKAam4M6K2i3IMV1U9hWLMUTBq1CxdRXA70XYWK2oJKycEis6jYuVGd5Mmfmya5nfqWkMkh9qVhkDw8GpAytQgyDxTFYxLlWAzSAzpZWHGTUtjSJIJW9aaYza02RiOprS6CzN-1JIGaTGWCAetQ0MryxEZxUFIrOCKaYxoOBVIBhbmqEG7kUh2LMZzik2FizGM8ipuBYWImqSJFMDZziqC47yWK9K1ixEUiEDpV3EyrMvBzWEzOb0Ma7jPmc1hI45biwjbSSIuaEEuO9OxJP5wx1oGhrTN2NM2ih0UhJ61UTeJbgdia0NEX4fmwaCrFhRkVaAYyVdgIZFrJoCu61NiWiBxtbNSxFqCQFacWFidHP41qpFJEwmYd6rmQWHwSMzcmi47F2FeQaLCZpwrkCmkRclKHFNoV0QTLkYqWhGfcQ56io5SkzOnt8Z4pOBaZRmhFZyiWmVJExms5IdysYdzVNhFu1tR3FXFAjQgiCjFapDsLJFmraERPHhTWbRLM68QmsnEVhLCMhuRRGIrGvCgwMVqolEqLg0yrDpeRzSauSVmQ5rFw1ESBDtp8orETRjuKB8q6lO9tgVJArOUOphOCsc_ch4pCMEDNZp2OOUbMlhYtSvcEX9NtpLu6WFc-p-lVSpuUikjoL02dtarFtCsOVAHIrevyQXmdtKnzHK-IPF32WIwLcfMBjiuP2tSeh6lHDW1ZwWq6vd6hIcu-3ue2K2pUm9WdllEi05Ybdsuu8nqTmuiMiXE0vtK4x8uO2K0tcXKIJZZsrEhDe_StFYTRPa2Jl-eeT6jNWiC0FsbdwVKBj196TkUlcjm1eFCVjU_lWbmzSNPuZ9zr1yD-7VyPYUK5bp2KAvNYuZDsZlU9Ce1bQM5pFlbDWpcJJqEu08q2f61ucstzXtfDYu7ZU1QCYA5DhiGH4itEZyRtWnhjTUtlSRdw6KcnIqiLsnTQtOigfdahgAeRk5p3JY200zSi5hmsXbAyp2k5HtRzCNCGz04SBkgZZF6OM81cWTJF2aK08tXRGhlPBBztcehHTNDRKZhalb23WO72Nz5eT37qaEDucHrGo3elaghiHm2jn59pyYm9QPT_AApSjcpG3odw3mB4kVEY7mEY-U564q2Zt6m5qmol4vshk3SIm6Pn_WJjsfUf0NIDkLDW_O1CXS548zrzHv4DDr09apRuFyF4LGa6ljDNCrDEkL_w57j_ABqXApSM-70W_gYIwjvIW-66Eb09_eiKCUirHp9wpJt5p7O6U8jJCOPUUSRUHfctR61qtsRFqCmYIciUcSL6MD3xWehfod14P-IEMgWO4lYuh2tuGGx_UUmUj0rSdVhmbzImDhudy9_rimRKBdukgvd27DRN3HVG9fakJuyMx0ktY9zncqtgTDpj0b0q4-Zm5XLxBuAgU7jj5Tu-YUNFQutyItNbT7_uHo2Rw31qbtIptMSW1hvw4VVEp5K_3qynSUibdzn3tbnT7l4GDeQ549Yz615tWDgxoRy0uUYbZlGceoqVLuDQQPuXJ4I6j0quYyY4ON-M0XJHBCeoq0ZyRZt4-elUiC_DHWiAl8vLUASiKiwDljwaaAlGAKqxYx5AO9A0yF5OetSykRPJx1qHYCpK-TnNYyKK7HJ4NZ31M5PURie9Nk3CNuapBcsxtxTKTJUapbsWhXaocxkbOcVlzgRmQijmGSQznODWsJGbLAcGtbkjlJzVpiJlGRTEDIMZqQImFDQyncdDUMTM

图像解码

代码语言:javascript
复制
import tensorflow as tf
import base64
import cv2
import numpy as np

if __name__ == "__main__":

    path = "/Users/admin/Documents/111.jpeg"
    img = tf.io.read_file(path)
    print("图像字节编码:{}".format(img))

    img1 = tf.io.gfile.GFile(path, 'rb')
    print("图像字节编码:{}".format(img1.readlines()))

    img_64 = tf.io.encode_base64(img)
    img_64 = format(img_64)[2:-1]
    print("网络安全Base_64编码:{}".format(img_64))

    img_b64 = list(img_64)
    img_b64_list = []
    for i in range(len(img_b64)):
        if img_b64[i] == "-":
            img_b64_list.append("+")
        elif img_b64[i] == "_":
            img_b64_list.append("/")
        else:
            img_b64_list.append(img_b64[i])
    if len(img_b64_list) % 4 != 0:
        remainder = len(img_b64_list) % 4
        for i in range(remainder):
            img_b64_list.append("=")
    img_b64 = "".join(img_b64_list)
    print("标准Base_64编码:{}".format(img_b64))

    with open(path, "rb") as f:
        img3 = f.read()
        img_stand_b64 = base64.b64encode(img3)
        img_stand_b64_str = img_stand_b64.decode("utf8")
    print("标准Base_64编码:{}".format(img_stand_b64_str))

    img_w64 = list(img_stand_b64_str)
    img_w64_list = []
    for i in range(len(img_w64)):
        if img_w64[i] == "+":
            img_w64_list.append("-")
        elif img_w64[i] == "/":
            img_w64_list.append("_")
        elif img_w64[i] == "=":
            break
        else:
            img_w64_list.append(img_w64[i])
    img_w64 = "".join(img_w64_list)
    print("网络安全Base_64编码:{}".format(img_w64))
    # 网络安全Base64解码
    img_w64_tensor = tf.convert_to_tensor(img_w64)
    img_w64_decode = tf.io.decode_base64(img_w64_tensor)
    img_matrix = tf.io.decode_image(img_w64_decode)
    img_matrix = np.uint8(img_matrix)
    r, g, b = cv2.split(img_matrix)
    img_matrix = cv2.merge((b, g, r))
    cv2.namedWindow('img', cv2.WINDOW_NORMAL)
    while True:
        cv2.imshow('img', img_matrix)
        key = cv2.waitKey()
        if key & 0xFF == ord('q'):
            break
    cv2.destroyAllWindows()

运行结果

图像数据处理

图像压缩

代码语言:javascript
复制
import tensorflow as tf
import base64
import cv2

if __name__ == "__main__":

    path = "/Users/admin/Documents/111.jpeg"
    img = tf.io.read_file(path)
    print("图像字节编码:{}".format(img))

    img1 = tf.io.gfile.GFile(path, 'rb')
    print("图像字节编码:{}".format(img1.readlines()))

    img_64 = tf.io.encode_base64(img)
    img_64 = format(img_64)[2:-1]
    print("网络安全Base_64编码:{}".format(img_64))

    img_b64 = list(img_64)
    img_b64_list = []
    for i in range(len(img_b64)):
        if img_b64[i] == "-":
            img_b64_list.append("+")
        elif img_b64[i] == "_":
            img_b64_list.append("/")
        else:
            img_b64_list.append(img_b64[i])
    if len(img_b64_list) % 4 != 0:
        remainder = len(img_b64_list) % 4
        for i in range(remainder):
            img_b64_list.append("=")
    img_b64 = "".join(img_b64_list)
    print("标准Base_64编码:{}".format(img_b64))

    with open(path, "rb") as f:
        img3 = f.read()
        img_stand_b64 = base64.b64encode(img3)
        img_stand_b64_str = img_stand_b64.decode("utf8")
    print("标准Base_64编码:{}".format(img_stand_b64_str))

    img_w64 = list(img_stand_b64_str)
    img_w64_list = []
    for i in range(len(img_w64)):
        if img_w64[i] == "+":
            img_w64_list.append("-")
        elif img_w64[i] == "/":
            img_w64_list.append("_")
        elif img_w64[i] == "=":
            break
        else:
            img_w64_list.append(img_w64[i])
    img_w64 = "".join(img_w64_list)
    print("网络安全Base_64编码:{}".format(img_w64))
    # 网络安全Base64解码
    img_w64_tensor = tf.convert_to_tensor(img_w64)
    img_w64_decode = tf.io.decode_base64(img_w64_tensor)
    img_matrix = tf.io.decode_image(img_w64_decode)
    # 图像压缩的8种方法
    # bilinear双线性插值,lanczos3为lanczos插值,卷积核尺寸为3*3
    # lanczos5为lanczos插值,卷积核尺寸为5*5
    # bicubic双三次插值,gaussian高斯插值,nearest最近邻插值
    # area区域插值,mitchellcubic米切尔立方插值
    methords1 = ["bilinear", "lanczos3", "lanczos5", "bicubic"]
    methords2 = ["gaussian", "nearest", "area", "mitchellcubic"]
    if img_matrix.dtype != tf.float32:
        img_matrix = tf.image.convert_image_dtype(img_matrix, dtype=tf.float32)
    for i in range(4):
        # tensorflow压缩图像
        img_matrix1 = tf.image.resize(img_matrix, [400, 400], method=methords1[i])
        if img_matrix1.dtype == tf.float32:
            img_matrix1 = tf.image.convert_image_dtype(img_matrix1, dtype=tf.uint8)
        img_matrix1 = img_matrix1.numpy()
        r, g, b = cv2.split(img_matrix1)
        img_matrix1 = cv2.merge((b, g, r))
        cv2.namedWindow('img' + str(i), cv2.WINDOW_NORMAL)
        while True:
            cv2.imshow('img' + str(i), img_matrix1)
            key = cv2.waitKey()
            if key & 0xFF == ord('q'):
                break
        cv2.destroyAllWindows()

运行结果

可能这些压缩方式在我们肉眼看起来是没有什么太大区别的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 图像数据解析
  • 图像数据处理
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档