使用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

相关推荐
民乐团扒谱机8 小时前
【全流程实战】LibTV节点式AI视频工作流落地教程|从剧本到成片可复用流水线,新手/开发者双版本
人工智能·音视频
私人珍藏库13 小时前
[Android] 美颜通 -实时视频通话直播美颜
智能手机·app·音视频·软件·多功能
YOLO数据集集合14 小时前
番茄病害智能诊断系统:YOLO+DeepSeek农业AI落地实践
人工智能·yolo·目标检测·计算机视觉
在世修行16 小时前
第19篇:显微镜像素比例校准 — 测量精度的基石
人工智能·计算机视觉·像素比例
研來如此18 小时前
图像文件大小
人工智能·算法·计算机视觉
陈嘿萌18 小时前
ICML 2026 | MobileFusion:仅4K参数,通过结构重参数化让图像融合跑上移动端
人工智能·计算机视觉·图像融合·厦门大学·icml2026·mobilefusion
编码小哥19 小时前
OpenCV HOG 特征与行人检测
人工智能·opencv·计算机视觉
lpfasd12319 小时前
火山引擎 TOS 视频 `Content-Disposition: attachment` 排查实录
音视频·火山引擎
深圳市快瞳科技有限公司20 小时前
从人工录入到秒级识别:保单OCR识别厂家选型指南
人工智能·算法·计算机视觉·ocr
byte轻骑兵20 小时前
【LE Audio】CSIS精讲[1]: 从核心定义到协议基础,读懂多设备协同的底层逻辑
人工智能·音视频·人机交互·蓝牙耳机·le audio·低功耗蓝牙音频