使用Sobel算子把视频转换为只剩边缘部分

效果展示

原始视频

修改后的视频

整体代码

python 复制代码
import cv2

vc = cv2.VideoCapture('test.mp4')

if vc.isOpened():
    open, frame = vc.read()
else:
    open = False

i = 0
while open:
    ret, frame = vc.read()
    if frame is None:
        break
    if ret == True:
        i += 1
        # 转换为灰度图
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        # 使用Sobel进行边缘处理
        sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)
        sobelx = cv2.convertScaleAbs(sobelx)

        sobely = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize=3)
        sobely = cv2.convertScaleAbs(sobely)
        # 合起来
        sobelxy = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0)
        cv2.imshow('result', sobelxy)
        # 0.1s 0xFF表示键盘上的Esc键
        if cv2.waitKey(100) & 0xFF == 27:
            break

# 释放硬件资源
vc.release()
# 清除所有窗口
cv2.destroyAllWindows()

代码解释

python 复制代码
sobelx = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize=3)

Sobel(src, ddepth, dx, dy, ksize)

①dx和dy分别表示水平和竖直方向

②ddepth一般为-1,表示和原图像一样的深度

上面的cv2.CV_64F代表的是深度,可以保存负数,是特殊的用法

③ksize表示卷积核大小(算子大小)

④src表示传入图像


python 复制代码
sobelxy = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0)

把x和y方向的求和,获得整体的边缘图像

sobelx和sobely则是你通过Sobel计算的图像

0.5表示的是权值(占比)

0表示的是偏置项,为0即可


python 复制代码
        if cv2.waitKey(100) & 0xFF == 27:
            break

这里的0xFF == 27 表示的是键盘上的Esc键


python 复制代码
sobelx = cv2.convertScaleAbs(sobelx)

把负数变成正数,防止被截断为0 因为默认的时候负数会被转换为0

相关推荐
张人玉4 小时前
Cognex VisionPro 相机工具集成代码分析笔记
数码相机·计算机视觉·vsionpro
美狐美颜SDK开放平台5 小时前
美颜SDK性能优化实战:GPU加速与AI人脸美型的融合开发
人工智能·音视频
AI浩6 小时前
VSSD:具有非因果状态空间对偶性的视觉Mamba模型
人工智能·目标检测·计算机视觉
卜锦元7 小时前
音视频媒体服务领域中三种架构方式的定义与区别(Mesh、MCU、SFU)
架构·音视频·媒体
EasyCVR8 小时前
打造景区“视觉中枢”:视频融合平台EasyCVR助力智慧景区安防智能化升级
音视频
深度学习lover8 小时前
<数据集>yolo航拍斑马线识别数据集<目标检测>
人工智能·深度学习·yolo·目标检测·计算机视觉·数据集·航拍斑马线识别
上大科技蔡生9 小时前
CS8389、CS8390:防破音,AB/D,2×6.6W立体音频功率放大器
音视频·音频功放
这张生成的图像能检测吗9 小时前
(论文速读)AIMV2:一种基于多模态自回归预训练的大规模视觉编码器方法
人工智能·计算机视觉·预训练·视觉语言模型
AndrewHZ10 小时前
【图像处理基石】 怎么让图片变成波普风?
图像处理·算法·计算机视觉·风格迁移·cv
CV实验室11 小时前
AAAI 2026 Oral 之江实验室等提出MoEGCL:在6大基准数据集上刷新SOTA,聚类准确率最高提升超8%!
人工智能·机器学习·计算机视觉·数据挖掘·论文·聚类