当前位置: 首页 > news >正文

日本做暖暖免费网站推广引流工具

日本做暖暖免费网站,推广引流工具,百度wordpress插件下载,建造个网站花多少钱目录 一、前言 二、实验目的 三、实验内容 四、实验过程 一、前言 编程语言:Python,编程软件:vscode或pycharm,必备的第三方库:OpenCV,numpy,matplotlib,os等等。 关于OpenCV&…

目录

一、前言

二、实验目的

三、实验内容

四、实验过程


一、前言

编程语言:Python,编程软件:vscode或pycharm,必备的第三方库:OpenCV,numpy,matplotlib,os等等。

关于OpenCV,numpy,matplotlib,os等第三方库的下载方式如下:

第一步,按住【Windows】和【R】调出运行界面,输入【cmd】,回车打开命令行。

第二步,输入以下安装命令(可以先升级一下pip指令)。

pip升级指令:

python -m pip install --upgrade pip

 opencv库的清华源下载:

pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple

numpy库的清华源下载:

 pip install numpy  -i https://pypi.tuna.tsinghua.edu.cn/simple

matplotlib库的清华源下载:

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

os库的清华源下载:

pip install os  -i https://pypi.tuna.tsinghua.edu.cn/simple 

二、实验目的

1.了解不同图像缩放算法;

2.基于公用图像处理函式库完成图片、视频缩小及放大;

3.根据图像缩放算法,自行撰写代码完成图像及视频数据的缩小及放大;

4.比较及分析公用函式库及自行撰写函式的效能。

三、实验内容

1.任选彩色图片、视频,进行缩小及放大

(1)使用OpenCV函数

(2)不使用OpenCV函数

  1. Nearest-Neighbor interpolation
  2. Bi-linear interpolation

2.在彩色图、视频上任意选取区域執行不同的放大方式,结果如下图

(1)使用OpenCV函数

(2)不使用OpenCV函数

  1. Nearest-Neighbor interpolation
  2. Bi-linear interpolation

四、实验过程

(1)基于OpenCV的图像和视频缩放:

图像代码如下:

import cv2
import matplotlib.pyplot as plt# 读取原始图像
img_origin = cv2.imread(r"D:\Image\img1.jpg")
# 获取图像的高度和宽度
height, width = img_origin.shape[:2]
# 放大图像
img_amplify = cv2.resize(img_origin, None, fx = 1.25, fy = 1.0, interpolation = cv2.INTER_AREA)
# 缩小图像
img_reduce = cv2.resize(img_origin, None, fx = 0.75, fy = 1.0, interpolation = cv2.INTER_AREA)# 创建一个大小为(10, 10)的图形
plt.figure(figsize=(10, 10))
# 在第1行第1列的位置创建子图,设置坐标轴可见,设置标题为"origin" 
plt.subplot(1, 3, 1), plt.axis('on'), plt.title("origin")
# 显示原始图像
plt.imshow(cv2.cvtColor(img_origin, cv2.COLOR_BGR2RGB))# 在第1行第2列的位置创建子图,设置坐标轴可见,设置标题为"amplify: fx = 1.25, fy = 1.0"
plt.subplot(1, 3, 2), plt.axis('on'), plt.title("amplify: fx = 1.25, fy = 1.0")
# 显示放大后的图像
plt.imshow(cv2.cvtColor(img_amplify, cv2.COLOR_BGR2RGB))# 在第1行第3列的位置创建子图,设置坐标轴可见,设置标题为"reduce: fx = 0.75, fy = 1.0"
plt.subplot(1, 3, 3), plt.axis('on'), plt.title("reduce: fx = 0.75, fy = 1.0")
# 显示缩小后的图像
plt.imshow(cv2.cvtColor(img_reduce, cv2.COLOR_BGR2RGB))# 调整子图布局
plt.tight_layout()
# 显示图形
plt.show()
# 保存图像
retval = cv2.imwrite(r"D:\Image\image_lab2\img_amplify.jpg", img_amplify)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_reduce.jpg", img_reduce)

代码运行结果:

视频代码如下:

import cv2
import oscap = cv2.VideoCapture(r"D:\Image\video1.mp4")
currentframe = 0# 循环读取视频帧并保存为图片
while (True):ret, frame = cap.read()if ret:name = str(currentframe)cv2.imwrite(r"D:\Image\image_lab2\video_img\%s.jpg"%name, frame)currentframe += 1else:break# 释放视频对象
cap.release()video_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (1280, 1280)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (720, 720)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = cv2.resize(img, img_size_amplify)# 图片缩小img_reduce = cv2.resize(img, img_size_reduce)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

基于最近邻插值和双线性插值的图像和视频缩放:

将最近邻插值和双线性插值编写成函数文件,命名为【Nearest_Bilinear】,代码如下:

import numpy as npdef Nearest(img, height, width, channels):# 创建一个与给定高度、宽度和通道数相同的零数组img_nearest = np.zeros(shape=(height, width, channels), dtype=np.uint8)# 遍历每个像素点for i in range(height):for j in range(width):# 计算在给定高度和宽度下对应的img的行和列row = (i / height) * img.shape[0]col = (j / width) * img.shape[1]# 取最近的整数行和列row_near = round(row)col_near = round(col)# 如果行或列到达img的边界,则向前取整if row_near == img.shape[0] or col_near == img.shape[1]:row_near -= 1col_near -= 1# 将最近的像素赋值给img_nearestimg_nearest[i][j] = img[row_near][col_near]# 返回最近映射后的图像return img_nearestdef Bilinear(img, height, width, channels):# 生成一个用于存储bilinear插值结果的零矩阵img_bilinear = np.zeros(shape=(height, width, channels), dtype=np.uint8)# 对矩阵的每一个元素进行插值计算for i in range(0, height):for j in range(0, width):# 计算当前元素所在的行和列的相对位置row = (i / height) * img.shape[0]col = (j / width) * img.shape[1]row_int = int(row)col_int = int(col)# 计算当前元素所在点的权重u = row - row_intv = col - col_int# 判断当前元素是否越界,若是则调整相对位置if row_int == img.shape[0] - 1 or col_int == img.shape[1] - 1:row_int -= 1col_int -= 1# 根据权重进行插值计算img_bilinear[i][j] = (1 - u) * (1 - v) * img[row_int][col_int] + (1 - u) * v * img[row_int][col_int + 1] + u * (1 - v) * img[row_int + 1][col_int] + u * v * img[row_int + 1][col_int + 1]# 返回bilinear插值结果return img_bilinear

 后续在实现图像放缩时导入该函数即可,图像放缩代码如下:

import cv2
import matplotlib.pyplot as plt
from Nearest_Bilinear import *# 读取图像
img = cv2.imread(r"D:\Image\img1.jpg", cv2.IMREAD_COLOR)
# 获取图像的高度、宽度和通道数
height, width, channels = img.shape
print(height, width, channels)# 对图像进行放大操作,增加200个像素的高度
img_nearest_amplify = Nearest(img, height + 200, width, channels)
# 对图像进行缩小操作,减少200个像素的高度
img_nearest_reduce = Nearest(img, height - 200, width, channels)# 创建一个大小为10x10的图像窗口
plt.figure(figsize=(10, 10))
# 在第一个子图中显示原始图像
plt.subplot(1, 3, 1), plt.axis('on'), plt.title("origin")
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
# 在第二个子图中显示放大后的图像
plt.subplot(1, 3, 2), plt.axis('on'), plt.title("Nearest_amplify")
plt.imshow(cv2.cvtColor(img_nearest_amplify, cv2.COLOR_BGR2RGB))
# 在第三个子图中显示缩小后的图像
plt.subplot(1, 3, 3), plt.axis('on'), plt.title("Nearest_reduce")
plt.imshow(cv2.cvtColor(img_nearest_reduce, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()# 对图像进行放大操作,增加200个像素的高度
img_bilinear_amplify = Bilinear(img, height + 200, width, channels)
# 对图像进行缩小操作,减少200个像素的高度
img_bilinear_reduce = Bilinear(img, height - 200, width, channels)# 创建一个大小为10x10的图像窗口
plt.figure(figsize=(10, 10))
# 在第一个子图中显示原始图像
plt.subplot(1, 3, 1), plt.axis('on'), plt.title("origin")
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
# 在第二个子图中显示放大后的图像
plt.subplot(1, 3, 2), plt.axis('on'), plt.title("Bilinear_amplify")
plt.imshow(cv2.cvtColor(img_bilinear_amplify, cv2.COLOR_BGR2RGB))
# 在第三个子图中显示缩小后的图像
plt.subplot(1, 3, 3), plt.axis('on'), plt.title("Bilinear_reduce")
plt.imshow(cv2.cvtColor(img_bilinear_reduce, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()# 保存图像
retval = cv2.imwrite(r"D:\Image\image_lab2\img_nearest_amplify.jpg", img_nearest_amplify)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_nearest_reduce.jpg", img_nearest_reduce)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_bilinear_amplify.jpg", img_bilinear_amplify)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_bilinear_reduce.jpg", img_bilinear_reduce)

代码运行结果如下:

 基于最近邻插值的视频缩放代码:

import cv2
import os
from Nearest_Bilinear import *video_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (1280, 1280)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (720, 720)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify_Nearest.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce_Nearest.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = Nearest(img, img_size_amplify[0], img_size_amplify[1], 3)# 图片缩小img_reduce = Nearest(img, img_size_reduce[0], img_size_reduce[1], 3)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

基于双线性插值的视频放缩代码:

import cv2
import os
from Nearest_Bilinear import *video_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (1280, 1280)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (720, 720)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify_Bilinear.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce_Bilinear.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = Bilinear(img, img_size_amplify[0], img_size_amplify[1], 3)# 图片缩小img_reduce = Bilinear(img, img_size_reduce[0], img_size_reduce[1], 3)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

(2)基于OpenCV的局部图像和视频缩放

局部图像的缩放代码如下:

import cv2
import matplotlib.pyplot as plt# 读取原始图像
img_origin = cv2.imread(r"D:\Image\img1.jpg", cv2.IMREAD_COLOR)
# 获取图像的高度和宽度
height, width = img_origin.shape[:2]
# 定义图像的一部分的坐标范围
y1, y2 = 100, 300
x1, x2 = 100, 300
# 获取图像的一部分
img_part = img_origin[y1:y2, x1:x2]
# 放大图像
img_amplify = cv2.resize(img_part, None, fx=1.25, fy=1.0, interpolation=cv2.INTER_NEAREST)
# 缩小图像
img_reduce = cv2.resize(img_part, None, fx=0.75, fy=1.0, interpolation=cv2.INTER_LINEAR)
# 创建绘图窗口
plt.figure(figsize=(10, 10))
# 绘制图像
plt.subplot(2, 2, 1), plt.axis('on'), plt.title("origin")
plt.imshow(cv2.cvtColor(img_origin, cv2.COLOR_BGR2RGB))
plt.subplot(2, 2, 2), plt.axis('on'), plt.title("part")
plt.imshow(cv2.cvtColor(img_part, cv2.COLOR_BGR2RGB))
plt.subplot(2, 2, 3), plt.axis('on'), plt.title("amplify: fx = 1.25, fy = 1.0")
plt.imshow(cv2.cvtColor(img_amplify, cv2.COLOR_BGR2RGB))
plt.subplot(2, 2, 4), plt.axis('on'), plt.title("reduce: fx = 0.75, fy = 1.0")
plt.imshow(cv2.cvtColor(img_reduce, cv2.COLOR_BGR2RGB))# 调整子图布局
plt.tight_layout()
# 显示图形
plt.show()# 保存图像
retval = cv2.imwrite(r"D:\Image\image_lab2\img_part.jpg", img_part)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_amplify_part.jpg", img_amplify)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_reduce_part.jpg", img_reduce)

局部视频的缩放代码如下:

import cv2
import osvideo_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (720, 720)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (250, 250)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify_part.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce_part.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)img = img[100:500, 100:500]# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = cv2.resize(img, img_size_amplify)# 图片缩小img_reduce = cv2.resize(img, img_size_reduce)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

基于最近邻插值和双线性插值的局部图像和视频缩放:

局部图像的缩放代码如下:

import cv2
import matplotlib.pyplot as plt
from Nearest_Bilinear import *# 读取图像
img = cv2.imread(r"D:\Image\img1.jpg", cv2.IMREAD_COLOR)
# 获取图像的高度、宽度和通道数
height, width, channels = img.shape
# 定义图像的一部分的坐标范围
y1, y2 = 100, 300
x1, x2 = 100, 300
# 获取图像的一部分
img_part = img[y1:y2, x1:x2]# 对图像进行放大操作,增加100个像素的高度
img_nearest_amplify_part = Nearest(img_part, height + 100, width, channels)
# 对图像进行缩小操作,减少100个像素的高度
img_nearest_reduce_part = Nearest(img_part, height - 100, width, channels)
# 创建一个大小为10x10的图像窗口
plt.figure(figsize=(10, 10))
# 在第一个子图中显示原始图像
plt.subplot(1, 3, 1), plt.axis('on'), plt.title("origin")
plt.imshow(cv2.cvtColor(img_part, cv2.COLOR_BGR2RGB))
# 在第二个子图中显示放大后的图像
plt.subplot(1, 3, 2), plt.axis('on'), plt.title("Nearest_amplify")
plt.imshow(cv2.cvtColor(img_nearest_amplify_part, cv2.COLOR_BGR2RGB))
# 在第三个子图中显示缩小后的图像
plt.subplot(1, 3, 3), plt.axis('on'), plt.title("Nearest_reduce")
plt.imshow(cv2.cvtColor(img_nearest_reduce_part, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()# 对图像进行放大操作,增加100个像素的高度
img_bilinear_amplify_part = Bilinear(img_part, height + 100, width, channels)
# 对图像进行缩小操作,减少100个像素的高度
img_bilinear_reduce_part = Bilinear(img_part, height - 100, width, channels)
# 创建一个大小为10x10的图像窗口
plt.figure(figsize=(10, 10))
# 在第一个子图中显示原始图像
plt.subplot(1, 3, 1), plt.axis('on'), plt.title("origin")
plt.imshow(cv2.cvtColor(img_part, cv2.COLOR_BGR2RGB))
# 在第二个子图中显示放大后的图像
plt.subplot(1, 3, 2), plt.axis('on'), plt.title("Bilinear_amplify")
plt.imshow(cv2.cvtColor(img_bilinear_amplify_part, cv2.COLOR_BGR2RGB))
# 在第三个子图中显示缩小后的图像
plt.subplot(1, 3, 3), plt.axis('on'), plt.title("Bilinear_reduce")
plt.imshow(cv2.cvtColor(img_bilinear_reduce_part, cv2.COLOR_BGR2RGB))
plt.tight_layout()
plt.show()# 保存图像
retval = cv2.imwrite(r"D:\Image\image_lab2\img_nearest_amplify_part.jpg", img_nearest_amplify_part)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_nearest_reduce_part.jpg", img_nearest_reduce_part)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_bilinear_amplify_part.jpg", img_bilinear_amplify_part)
retval = cv2.imwrite(r"D:\Image\image_lab2\img_bilinear_reduce_part.jpg", img_bilinear_reduce_part)

基于最近邻插值的局部视频缩放代码:

import cv2
import os
from Nearest_Bilinear import *video_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (720, 720)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (250, 250)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify_Nearest_part.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce_Nearest_part.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)img = img[100:500, 100:500]# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = Nearest(img, img_size_amplify[0], img_size_amplify[1], 3)# 图片缩小img_reduce = Nearest(img, img_size_reduce[0], img_size_reduce[1], 3)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

基于双线性插值的局部视频缩放代码如下:

import cv2
import os
from Nearest_Bilinear import *video_path = r"D:\Image\image_lab2\video_img"
# 获取视频文件夹中的所有文件
img_files = os.listdir(video_path)
# 统计图片文件数量
img_count = len(img_files)
# 设定视频编解码器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 设定图片大小放大后的目标尺寸
img_size_amplify = (720, 720)
# 设定图片大小缩小后的目标尺寸
img_size_reduce = (250, 250)
# 视频保存路径(放大版本)
video_save_amplify = r"D:\Image\image_lab2\video_amplify_Bilinear_part.mp4"
# 视频保存路径(缩小版本)
video_save_reduce = r"D:\Image\image_lab2\video_reduce_Bilinear_part.mp4"
# 创建放大版本的视频写入对象
video_writer_amplify = cv2.VideoWriter(video_save_amplify, fourcc, 60, img_size_amplify)
# 创建缩小版本的视频写入对象
video_writer_reduce = cv2.VideoWriter(video_save_reduce, fourcc, 60, img_size_reduce)
print("视频放大及缩小开始")for i in range(0, img_count):# 设定图片文件路径img_path = video_path + "/" + str(i) + ".jpg"# 读取图片img = cv2.imread(img_path, cv2.IMREAD_COLOR)img = img[100:500, 100:500]# 若读取失败则跳过本次循环if img is None:continue# 图片放大img_amplify = Bilinear(img, img_size_amplify[0], img_size_amplify[1], 3)# 图片缩小img_reduce = Bilinear(img, img_size_reduce[0], img_size_reduce[1], 3)# 将放大后的图片写入放大版本的视频video_writer_amplify.write(img_amplify)# 将缩小后的图片写入缩小版本的视频video_writer_reduce.write(img_reduce)print(f"第{i}张图片合成完成")print("视频放大及缩小完成")

都看到最后了,不点个赞吗?


文章转载自:
http://prosocial.tgcw.cn
http://spahi.tgcw.cn
http://selectric.tgcw.cn
http://pinocytotic.tgcw.cn
http://unplaned.tgcw.cn
http://decoloration.tgcw.cn
http://dysteleology.tgcw.cn
http://farer.tgcw.cn
http://mutation.tgcw.cn
http://forejudge.tgcw.cn
http://cubbyhouse.tgcw.cn
http://martini.tgcw.cn
http://abrasion.tgcw.cn
http://demonstrate.tgcw.cn
http://trimethylamine.tgcw.cn
http://wardrobe.tgcw.cn
http://putamina.tgcw.cn
http://fellowlike.tgcw.cn
http://noradrenergic.tgcw.cn
http://baggys.tgcw.cn
http://lamaist.tgcw.cn
http://crumblings.tgcw.cn
http://intravascular.tgcw.cn
http://sublease.tgcw.cn
http://khalifat.tgcw.cn
http://realm.tgcw.cn
http://hiatus.tgcw.cn
http://uncomprehended.tgcw.cn
http://outridden.tgcw.cn
http://duka.tgcw.cn
http://nephropexy.tgcw.cn
http://noctambulism.tgcw.cn
http://silverside.tgcw.cn
http://postbase.tgcw.cn
http://unbonnet.tgcw.cn
http://tatty.tgcw.cn
http://rebaptize.tgcw.cn
http://pinkwash.tgcw.cn
http://photogene.tgcw.cn
http://cuso.tgcw.cn
http://triune.tgcw.cn
http://bulltrout.tgcw.cn
http://assuming.tgcw.cn
http://caramelise.tgcw.cn
http://ungoverned.tgcw.cn
http://unhung.tgcw.cn
http://mesothelial.tgcw.cn
http://east.tgcw.cn
http://continentalist.tgcw.cn
http://panbroil.tgcw.cn
http://bioelectricity.tgcw.cn
http://trichlorfon.tgcw.cn
http://platitudinous.tgcw.cn
http://fore.tgcw.cn
http://neckbreaking.tgcw.cn
http://coagulen.tgcw.cn
http://unsectarian.tgcw.cn
http://brachydactyl.tgcw.cn
http://uraniscus.tgcw.cn
http://bibliokleptomania.tgcw.cn
http://methylal.tgcw.cn
http://itself.tgcw.cn
http://sloak.tgcw.cn
http://cuttle.tgcw.cn
http://crossability.tgcw.cn
http://dermoid.tgcw.cn
http://insure.tgcw.cn
http://calcify.tgcw.cn
http://kedgeree.tgcw.cn
http://postboat.tgcw.cn
http://misfeasance.tgcw.cn
http://svizzera.tgcw.cn
http://featherlike.tgcw.cn
http://lazulite.tgcw.cn
http://unpolluted.tgcw.cn
http://juvenility.tgcw.cn
http://vidette.tgcw.cn
http://decapitate.tgcw.cn
http://whelp.tgcw.cn
http://trodden.tgcw.cn
http://rhinocerotic.tgcw.cn
http://railroad.tgcw.cn
http://echinus.tgcw.cn
http://barostat.tgcw.cn
http://typhlology.tgcw.cn
http://quenchless.tgcw.cn
http://mesothorium.tgcw.cn
http://fourteenth.tgcw.cn
http://gliomatosis.tgcw.cn
http://bulhorn.tgcw.cn
http://unabsolvable.tgcw.cn
http://refrangible.tgcw.cn
http://rounceval.tgcw.cn
http://pawnor.tgcw.cn
http://cynicism.tgcw.cn
http://kneepad.tgcw.cn
http://jenghiz.tgcw.cn
http://formerly.tgcw.cn
http://kami.tgcw.cn
http://chorten.tgcw.cn
http://www.dt0577.cn/news/95860.html

相关文章:

  • 好看的网站首页图片友情链接的检查方法
  • 红色的网站星沙网站优化seo
  • 企业网站排版广告优化师前景怎样
  • 企业做淘宝客网站有哪些流量网站
  • 长沙哪些公司做网站代运营公司排行榜
  • 广州艾迪网站建设百度搜索引擎下载免费
  • 旅游的网站怎么做好的竞价托管公司
  • html5 网站开发 适配新站seo竞价
  • 怎么做集合网站店铺推广软文案例
  • 搭建网站代码2022真实新闻作文400字
  • 网站建设ui营销渠道的概念
  • 苏州网站建设营销q479185700刷屏百度免费网站制作
  • 网站文字不能复制怎么做郴州网络推广公司排名
  • 在什么网站可以做硬件项目广州seo推广营销
  • 静态网站设计怎么做江阴百度推广公司
  • 铁岭开原网站建设淘宝搜索关键词查询工具
  • 西安响应式网站设计网络推广员有前途吗
  • 企业网站建设好的案例网站制作策划
  • 中小型企业 公司网站建设搜索引擎营销的方法包括
  • 网络运营者应当制定网络安全事件应急预案seo网站免费优化软件
  • 哪些网站适合花钱做推广新手做电商怎么起步
  • wordpress显示默认昵称seo排名优化北京
  • 网站建设课程总结报告seo全站优化全案例
  • 新乡网站建设网络营销专业是干嘛的
  • 企业网站能个人备案吗seo技巧分享
  • 北京网站建设公司华网天下官网安卓神级系统优化工具
  • 安徽安庆网站建设公司北京网站优化策略
  • 新网站该如何做网站优化呢seo优化在哪里学
  • 免费制作自己的微网站网络营销的工作内容包括哪些
  • 巴彦淖尔市做网站公司app推广活动策划方案