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. 机器学习进阶-图像基本操作-图像数据读取 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 使得读入的图片为 ...

  2. 机器学习进阶-图像基本操作-边界补全操作 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 ...

  3. 机器学习进阶-光流估计 1.cv2.goodFeaturesToTrack(找出光流估计所需要的角点) 2.cv2.calcOpticalFlowPyrLK(获得光流检测后的角点位置) 3.cv2.add(进行像素点的加和)

    1.cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params)  用于获得光流估计所需要的角点参数说明:old_gray表示输入图片, ...

  4. 机器学习进阶-图像特征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)  找出 ...

  5. 机器学习进阶-图像特征harris-角点检测 1.cv2.cornerHarris(进行角点检测)

    1.cv2.cornerHarris(gray, 2, 3, 0.04)  # 找出图像中的角点 参数说明:gray表示输入的灰度图,2表示进行角点移动的卷积框,3表示后续进行梯度计算的sobel算子 ...

  6. 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)

    1. cv2.matchTemplate(src, template, method)  # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...

  7. 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)

    1. cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算 参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_6 ...

  8. 机器学习进阶-图像金字塔与轮廓检测-轮廓检测 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表示颜色的变换形式 ...

  9. 机器学习进阶-图像金字塔与轮廓检测-图像金字塔-(**高斯金字塔) 1.cv2.pyrDown(对图片做向下采样) 2.cv2.pyrUp(对图片做向上采样)

    1.cv2.pyrDown(src)  对图片做向下采样操作,通常也可以做模糊化处理 参数说明:src表示输入的图片 2.cv2.pyrUp(src) 对图片做向上采样操作 参数说明:src表示输入的 ...

随机推荐

  1. IntelliJ IDEA 2018破解方法

    1.下载idea:https://download.jetbrains.8686c.com/idea/ideaIU-2018.2.exe 2.安装idea 3.下载破解补丁:http://idea.l ...

  2. C语言强化——指针

    目录 相关概念 数组与函数 栈空间和堆空间的差异 指针常量与常量指针 指针数组与数组指针 二级指针 二级指针的传递 二级指针的偏移(索引式排序) 相关概念 指针的大小,在32系统上是4个字节:在64位 ...

  3. tools、site

    notepad editer fiddler 一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据 ...

  4. 一个源文件可以写出多个class吗?编译后,会不会生成多个class文件?

    会.一个.java源文件里面可以有内部类.其他类(有且仅有一个类可以声明为public),所以编译后,可以有多个class文件.

  5. 20165312 预备作业3 Linux安装及学习

    Linux安装及学习 一.安装Vmware虚拟机以及Ubuntu中遇到的问题 因为之前安装过Vmware虚拟机,考虑到两者没有太大的差别,就所以就没有再安装Vbox虚拟机. 在安装Vmware虚拟机增 ...

  6. WAV和PCM的关系和区别

    什么是WAV和PCM? WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范.所有的WAV都有一个文件头,这个文件头音频 ...

  7. Spring MVC 处理异常

    SpringMVC处理异常: 1 使用@ExceptionHandler注解 只有ModelAndView可以携带错误信息 @ExceptionHandler public ModelAndView ...

  8. Maven 自动下载源码和文档

    Maven下在pom中下载之后,如何才能使其自动下载源码和文档? 如果已经下载,可以先从Maven库中删除已经下载的代码,然后再update Maven项目即可

  9. ZooKeeper系列(7):ZooKeeper一致性原理

    一.ZooKeeper 的实现 1.1 ZooKeeper处理单点故障 我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示. 图 1.1 ZooK ...

  10. SQL各种语(持续更新)

    --通过分组查询,并查询各个组下面的数据数量 SELECT cord,COUNT(*) AS s FROM View_QualityPolicy GROUP BY cord ORDER BY s DE ...