机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)
1.cv2.add(dog_img, cat_img) # 进行图片的加和
参数说明: cv2.add将两个图片进行加和,大于255的使用255计数
2.cv2.resize(img, (500, 414)) # 根绝给定的维度进行变化 cv2.resize(img, (0, 0), fx=3, fy=1) 使得图像x轴变化为原来的三倍,y轴不变
参数说明:img表示需要变化的图片, (500, 414)表示变化的维度,长为414, 宽为500, fx=3, fy=1, 表示对图像的x轴进行变化
3.cv2.addWeighted(dog_img, 0.6, cat_img, 0.4, 0) 表示将两个图片进行重叠操作
参数说明:重叠后的像素表示: dog_img*0.6 + cat_img*0.4 + 0 ,0表示重叠的偏置项
代码:
1. 将一幅图片进行加10操作
2. 使用加号,将两个维度相同的图片进行加和操作
3. cv2.add() 将两个图片进行加和,大于255的用255表示
4.使用cv2.resize(img, (500, 414))对图片的维度进行变形,使用cv2.addWeighted()对两个图片进行重叠操作
5.使用cv2.resize(img, (0, 0), fx=3, fy=1) 对图片的x轴进行扩大操作
6.对cv2.addWeighted进行翻写操作
import cv2
cat_img = cv2.imread('cat.jpg')
dog_img = cv2.imread('dog.jpg')
# 1.对三个通道像素点进行加10操作
cat2_img = cat_img + 10
print(cat_img[0:5, :, 1])
print(cat2_img[0:5, :, 1])
cv2.imshow('cat', cat2_img)
cv2.waitKey(0)
# 2.将两张图片进行相加操作, 如果大于255,就使用256进行约分
print((cat2_img + cat_img)[0:5, :, 0])
# 3.使用cv2.add对两个照片进行加和, 如果加和值大于255,就使用255表示
print(cv2.add(cat2_img, cat_img)[0:5, :, 0])
import matplotlib.pyplot as plt
# 4. cv2.resize将图片进行变形, cv2.addWeighted将两个图片进行重叠, 参数说明dog_img * 0.6 + cat_img *0.4 + 0
print(cat_img.shape)
dog_img = cv2.resize(dog_img, (500, 414))
img = cv2.addWeighted(dog_img, 0.6, cat_img, 0.4, 0)
plt.imshow(img)
plt.show()

import matplotlib.pyplot as plt
# 5. cv2.resize(img, (0, 0), ), 将x轴扩大3倍
plt.subplot(211)
plt.imshow(cv2.resize(cat_img, (0, 0), fx=3, fy=1)) # 将y轴扩大3倍
plt.subplot(212)
plt.imshow(cv2.resize(cat_img, (0, 0), fx=1, fy=3))
plt.show()

# cv2.addWeighted翻写
img = np.round(np.multiply(dog_img, 0.6) + np.multiply(cat_img, 0.4))
img = img.astype(int)
print('', img)
plt.imshow(img)
plt.show()

机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)的更多相关文章
- 机器学习进阶-图像基本操作-图像数据读取 1.cv2.imread(图片读入) 2.cv2.imshow(图片展示) 3.cv2.waitKey(图片停留的时间) 4.cv2.destroyAllWindows(清除所有的方框界面) 5.cv2.imwrite(对图片进行保存)
1. cv2.imread('cat.jpg', cv2.IMGREAD_GRAYSCALE) # 使用imread读入图像(BGR顺序), 使用IMGREAD_GRAYSCALE 使得读入的图片为 ...
- 机器学习进阶-图像基本操作-边界补全操作 1.cv2.copyMakeBoder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REPLICATE) 进行边界的补零操作 2.cv2.BORDER_REPLICATE(边界补零复制操作)...
1.cv2.copyMakeBoder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REPLICATE) 参数说明: i ...
- 机器学习进阶-光流估计 1.cv2.goodFeaturesToTrack(找出光流估计所需要的角点) 2.cv2.calcOpticalFlowPyrLK(获得光流检测后的角点位置) 3.cv2.add(进行像素点的加和)
1.cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params) 用于获得光流估计所需要的角点参数说明:old_gray表示输入图片, ...
- 机器学习进阶-图像特征sift-SIFT特征点 1.cv2.xfeatures2d.SIFT_create(实例化sift) 2. sift.detect(找出关键点) 3.cv2.drawKeypoints(画出关键点) 4.sift.compute(根据关键点计算sift向量)
1. sift = cv2.xfeatures2d.SIFT_create() 实例化 参数说明:sift为实例化的sift函数 2. kp = sift.detect(gray, None) 找出 ...
- 机器学习进阶-图像特征harris-角点检测 1.cv2.cornerHarris(进行角点检测)
1.cv2.cornerHarris(gray, 2, 3, 0.04) # 找出图像中的角点 参数说明:gray表示输入的灰度图,2表示进行角点移动的卷积框,3表示后续进行梯度计算的sobel算子 ...
- 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)
1. cv2.matchTemplate(src, template, method) # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...
- 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)
1. cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算 参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_6 ...
- 机器学习进阶-图像金字塔与轮廓检测-轮廓检测 1.cv2.cvtColor(图像颜色转换) 2.cv2.findContours(找出图像的轮廓) 3.cv2.drawContours(画出图像轮廓) 4.cv2.contourArea(轮廓面积) 5.cv2.arcLength(轮廓周长) 6.cv2.aprroxPloyDP(获得轮廓近似) 7.cv2.boudingrect(外接圆)..
1. cv2.cvtcolor(img, cv2.COLOR_BGR2GRAY) # 将彩色图转换为灰度图 参数说明: img表示输入的图片, cv2.COLOR_BGR2GRAY表示颜色的变换形式 ...
- 机器学习进阶-图像金字塔与轮廓检测-图像金字塔-(**高斯金字塔) 1.cv2.pyrDown(对图片做向下采样) 2.cv2.pyrUp(对图片做向上采样)
1.cv2.pyrDown(src) 对图片做向下采样操作,通常也可以做模糊化处理 参数说明:src表示输入的图片 2.cv2.pyrUp(src) 对图片做向上采样操作 参数说明:src表示输入的 ...
随机推荐
- PAT 乙级 1067 试密码(20 分)
1067 试密码(20 分) 当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度 ...
- PAT 乙级 1063 计算谱半径(20) C++版
1063. 计算谱半径(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 在数学中,矩阵的“谱半径”是指其特 ...
- bundle adjustment 玩具程序
结合 bundle adjustment原理(1) 和 Levenberg-Marquardt 的 MATLAB 代码 两篇博客的成果,调用MATLAB R2016a中 bundleAdjustmen ...
- 廖雪峰Java2面向对象编程-2数据封装-1方法
1.数据封装 一个class可以包含多个field.直接把field用public暴露给外部可能破坏了封装,例如传入不合理的数值(年龄填入1000).如下 public class Person { ...
- Zabbix 告警内容配置
#配置媒介告警类型 #----------------------------------------------------------------------------------------- ...
- ngx_lua_waf
Web应用防护系统Web Application Firewall,简称WAF.针对HTTP/HTTPS的安全策略专门为Web应用提供保护的产品. OpenResty是一个基于 Nginx 与 Lua ...
- CentOS 7安装Oracle 11gR2以及设置自启动(1)
一.环境准备 1.正确无误的CentOS 7系统环境 虚拟机要求: 内存至少2G 处理器至少2个 根分区要大于20G(安装oracle很占空间,空闲空间要足够) 2.正确的JDK环境 CentOS 7 ...
- [UE4]InterpToMovement
InterpToMovement:可以让Actor在规定时间内,在多个点之间循环移动. Duration:规定时间
- log4net 配置允许同时写日志到同一个文件
RollingFileAppender appender = new RollingFileAppender();... appender.LockingModel = new FileAppende ...
- [UE4]C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>() 及 静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder()
转自:http://aigo.iteye.com/blog/2281558 动态加载UObject和动态加载UClass分别用LoadObject<T>(),和LoadClass<T ...