6 篇文章带有标签 “image-processing”

使用PaddleOCR进行文字识别

安装

pip install paddleocr

测试

import cv2
import numpy as np

from paddleocr import PaddleOCR


ocr = PaddleOCR(use_angle_cls=True)
image_path = 'test.jpg'
img = cv2.imread(image_path)

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_gray1 = img_gray[:,:, np.newaxis]
img_gray3 = np.concatenate([img_gray1, img_gray1, img_gray1], axis=-1)

texts = ocr.ocr(img_gray3)
for text in texts:
    """
    box   坐标1         坐标2
          坐标4         坐标3
    """
    box = text[0]
    t = text[1][0]
    score = text[1][1]

可视化(图像上画出文本和得分) import os import shutil import cv2 import numpy as np import uuid from PIL import ImageFo

OpenCV Python实践

安装

Python

sudo apt install python3
sudo apt install python3-pip
sudo pip3 install --upgrade pip

OpenCV

sudo pip3 install opencv-python
sudo pip3 install opencv-contrib-python

图像

读取图像

import cv2

img_file = 'python-logo@2x.png'
img = cv2.imread(img_file)

获取图像大小

width = img.shape[1]
height = img.shape[0]

显示图像并等待按任意键退出

import cv2

img_file = 'python-logo@2x.png'
img = cv2.imread(img_file)
cv2.imshow('', img)
cv2.waitKey(0)

宽高缩小一倍 比例 import cv2 img_file = 'python-logo@2x.png' img = cv2.imread(img_file) img = cv2.resize(img, None, fx=0.5, fy=0.5) cv2.

抽取视频关键帧保存zip文件

抽取视频的关键帧,保存为zip文件。

目录结构

.
├── keyframes
│   ├── race
│   │   ├── race-0001.jpg
│   │   ├── race-0002.jpg
│   │   └── race-0096.jpg
│   └── race.zip
└── videos
    └── race.mp4

自动化脚本 _prompt='██' #find返回的文件列表在macOS系统上不能使用for循环进行迭代。 video_files=$(find videos -type f \ -iname '.mov' -o \ -iname '.mts' -o \ -iname '.mp4' -o \ -iname '.mkv' -o \ -iname '.webm' -o \ -iname '.flv' -o \ -iname '.f4v' -o \ -iname '.vob' -o \ -iname '.ogg' -o \ -iname '.ogv' -o \ -iname '.avi' -o \ -iname '.

Dockerfile OpenCV4 Ubuntu20.04

Dockerfile

FROM ubuntu:20.04
LABEL maintainer="wang-junjian@qq.com"

#auto install tzdata(opencv depend)
ENV DEBIAN_FRONTEND=noninteractive

RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get update && apt-get install -y \
    python3 python3-pip \
    libglib2.0-dev libgl1-mesa-glx \
    && rm -rf /var/lib/apt/lists/*

RUN ln -s /usr/bin/python3 /usr/bin/python && \
    ln -s /usr/bin/pip3 /usr/bin/pip
RUN pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ \
    opencv-python opencv-contrib-python

#set your localtime
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

WORKDIR /

CMD bash

命令ffmpeg

FFmpeg

  • 格式转换 -y(覆盖输出文件)
ffmpeg -y -i input.mp4 output.avi
  • 生成gif(低质量) -pix_fmt(像素格式) -s(设置帧大小WxH)
ffmpeg -y -i input.mp4 -pix_fmt rgb8 -r 10 -s 320x240 output.gif
ffmpeg -y -i input.mp4 -pix_fmt rgb8 -r 10 -vf 'scale=320:-1' output.gif
  • 生成gif(高质量) -ss(开始时间偏移) -t(持续时间)
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
ffmpeg -y -ss 5 -t 5 -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif
  • 每秒抽取一张图片 -r(设置帧速率)
ffmpeg -i input.mp4 -r 1 -s 1024x768 -f image2 input-%03d.jpeg

图像格式转换、尺寸调整

查看图像信息

$ file test.jpg
test.jpg: JPEG image data, JFIF standard 1.02, resolution (DPI), density 96x96, segment length 16, Exif Standard: [TIFF image data, big-endian, direntries=7, orientation=upper-left, xresolution=98, yresolution=106, resolutionunit=2, software=Adobe Photoshop CS Windows, datetime=2013:03:18 11:45:34], baseline, precision 8, 750x499, frames 3

ImageMagick

ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过100种图像格式。

安装

  • Ubuntu
sudo apt-get install imagemagick
  • macOS
brew install imagemagick

格式转换

convert test.jpg test.png

灰度

convert -colorspace gray input_file output_file