рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЕрдиреБрдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдирд╛

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рд╕рд┐рдХреНрд╕реЗрд▓ рдЙрджрд╛рд╣рд░рдг

libsixel рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЫрд╡рд┐ред

рдкреНрд░реЗрд░рдгрд╛

рд░рд┐рдореЛрдЯ рдорд╢реАрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЫрд╡рд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдЬреАрдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбреЗрдЯрд╛ рд▓реЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред VSCode рдПрдХреАрдХреГрдд рдЯрд░реНрдорд┐рдирд▓ рд╕реАрдзреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП ultralytics рдХреЗ рд╕рд╛рде рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдкрд░рд┐рдгрд╛рдо.

рдЪреЗрддрд╛рд╡рдиреА

рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддред VSCode рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХреЛрд╖рдЬрд╛рдБрдЪ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдирд╣реАрдВ рддреЛ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП sixel.

рдПрдХреАрдХреГрдд рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП VSCode рд╕рдВрдЧрдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИрдВ sixel рдФрд░ iTerm. рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреА sixel рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред

рдкреНрд░рдХреНрд░рд┐рдпрд╛

  1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдХреНрд╖рдо рдХрд░рдиреА рд╣реЛрдВрдЧреА terminal.integrated.enableImages рдФрд░ terminal.integrated.gpuAcceleration VSCode рдореЗрдВред

    "terminal.integrated.gpuAcceleration": "auto" # "auto" is default, can also use "on"
    "terminal.integrated.enableImages": false
    

VSCode рдЯрд░реНрдорд┐рдирд▓ рдЗрдореЗрдЬ рд╕реЗрдЯрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

  1. рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ python-sixel рдЕрдкрдиреЗ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рдПрдХ рд╣реИ рдХрд╛рдВрдЯрд╛ рдХрд╛ PySixel рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬрд┐рд╕рдХрд╛ рдЕрдм рд░рдЦрд░рдЦрд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    pip install sixel
    
  2. рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ

    import io
    
    import cv2 as cv
    
    from ultralytics import YOLO
    from sixel import SixelWriter
    
  3. рдПрдХ рдореЙрдбрд▓ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдиреБрдорд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдЪрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдореЛрдб рдкреГрд╖реНрда рдкрд░ рдЕрдиреБрдорд╛рди рддрд░реНрдХреЛрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рджреЗрдЦреЗрдВ.

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolov8n.pt")
    
    # Run inference on an image
    results = model.predict(source="ultralytics/assets/bus.jpg")
    
    # Plot inference results
    plot = results[0].plot() #(1)!
    
    1. рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реНрдХ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЙрдЯ рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрдЦреЗрдВред
  4. рдЕрдм, рдХрдиреНрд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OpenCV рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ numpy.ndarray рддрдХ bytes рдбрд╛рдЯрд╛ред рдлрд┐рд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ io.BytesIO "рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА" рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

    # Results image as bytes
    im_bytes = cv.imencode(
        ".png", #(1)!
        plot,
        )[1].tobytes() #(2)!
    
    # Image bytes as a file-like object
    mem_file = io.BytesIO(im_bytes)
    
    1. рдЕрдиреНрдп рдЫрд╡рд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
    2. рдХреЗрд╡рд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рд╡рд╕реНрддреБ 1 рдЬрд┐рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред
  5. рдПрдХ рдмрдирд╛рдПрдБ SixelWriter instance, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ .draw() рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐ рдЦреАрдВрдЪрдиреЗ рдХреА рд╡рд┐рдзрд┐ред

    # Create sixel writer object
    w = SixelWriter()
    
    # Draw the sixel image in the terminal
    w.draw(mem_file)
    

рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрдорд╛рди рдкрд░рд┐рдгрд╛рдо

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐ рджреЗрдЦреЗрдВ

рдЦрд╝рддрд░рд╛

рд╡реАрдбрд┐рдпреЛ рдпрд╛ рдПрдирд┐рдореЗрдЯреЗрдб GIF рдлрд╝реНрд░реЗрдо рдХреЗ рд╕рд╛рде рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдкрдиреЗ рдЬреЛрдЦрд┐рдо рдкрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдкреВрд░реНрдг рдХреЛрдб рдЙрджрд╛рд╣рд░рдг

import io

import cv2 as cv

from ultralytics import YOLO
from sixel import SixelWriter

# Load a model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model.predict(source="ultralytics/assets/bus.jpg")

# Plot inference results
plot = results[0].plot() #(3)!

# Results image as bytes
im_bytes = cv.imencode(
    ".png", #(1)!
    plot,
    )[1].tobytes() #(2)!

mem_file = io.BytesIO(im_bytes)
w = SixelWriter()
w.draw(mem_file)
  1. рдЕрдиреНрдп рдЫрд╡рд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
  2. рдХреЗрд╡рд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рд╡рд╕реНрддреБ 1 рдЬрд┐рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред
  3. рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реНрдХ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЙрдЯ рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрдЦреЗрдВред

рдиреЛрдХ

рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ clear рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рджреГрд╢реНрдп рдХреЛ "рдорд┐рдЯрд╛рдиреЗ" рдХреЗ рд▓рд┐рдПред



2024-03-09 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-04-27
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (1), рдмреБрд░рд╣рд╛рди-рдХреНрдпреВ (1)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ