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. vue中滚动事件绑定的函数无法调用问题

    问题描述: 一个包含下拉加载的页面,刷新当前页然后滚动页面,能够正常触发滚动事件并调用回调函数,但是如果是进了某一个页面然后再进的该页面,滚动事件能够触发, 但是回调函数在滚动的时候只能被调用一次. ...

  2. java 1.8新特性(二) 关于 function 接口的使用

    需求1:从user集合中 找出age=15的用户  传统方法 就不说了 举例明一下 java1.8 使用Predicate接口解决该需求: @FunctionalInterface public in ...

  3. 学习-工作:GTD

    ylbtech-学习-工作:GTD GTD就是Getting Things Done的缩写,翻译过来就是“把事情做完”,是一个管理时间的方法.GTD的核心理念概括就是必须记录下来要做的事,然后整理安排 ...

  4. 学习笔记之C / C++

    面试总结之C/C++ - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5558919.html 学习笔记之C++ How to Program(p ...

  5. [转][C#]降级.net 源码4.5

    来自:https://www.cnblogs.com/had37210/p/8057042.html 主要是 Task 的降级: 1.net4.5.2 引入了 async/await 关键字. 这个其 ...

  6. C# Socket的Send问题,阻塞线程

    Socket sc = comm.connectSocket(ip, port, ReceiveMsg_fromPc); comm.sendSocketMsg16(sc,cmd); sc.Close( ...

  7. [UE4]使用C++重写蓝图,SpawnObject根据类型动态创建UObject

    先大量使用蓝图制作项目,后续再用C++把复杂的蓝图重写一遍,用C++代码按照蓝图依葫芦画瓢就可以了,很简单,但需要遵守一些原则: 第一种方法:使用继承 一.创建一个C++类作为蓝图的父类(C++类继承 ...

  8. Go语言 函数,工程管理

    Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...

  9. CentOS安装redis.tar.gz

    1. # cd /usr/local/src 2. # tar -zxvf redis-3.0.6.tar.gz 3. # cd redis-3.0.6 4.# make 5.#  make PREF ...

  10. c#线程间传递参数

    线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn).        Thread (P ...