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

金坛建设银行总行网站北京seo排名方法

金坛建设银行总行网站,北京seo排名方法,dw做网站视频教程,做陶瓷公司网站缩放 缩放只是调整图像的大小。为此,opencv提供了一个cv2.resize()函数,可以手动指定图像大小,也可以指定缩放因子。你可以使用任意一种方法调整图像的大小: import cv2 from matplotlib import pyplot as pltlogo cv2.imread(…

缩放

缩放只是调整图像的大小。为此,opencv提供了一个cv2.resize()函数,可以手动指定图像大小,也可以指定缩放因子。你可以使用任意一种方法调整图像的大小:

import cv2
from matplotlib import pyplot as pltlogo = cv2.imread('logo.png')
logo_mini = cv2.resize(logo, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_CUBIC)
# 或者这样
# height, width = logo.shape[:2]
# logo_mini = cv2.resize(logo, (int(0.5 * height), int(0.5 * width)), interpolation=cv2.INTER_CUBIC)plt.subplot(121),plt.imshow(logo, 'gray'),plt.title('logo')
plt.subplot(122),plt.imshow(logo_mini, 'gray'),plt.title('logo_mini')
plt.show()

效果如下:

2r1tVP.png

请看logo_mini的宽高与原图缩小了一半!resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)参数详解如下:

  • src: 输入图像
  • dsize: 修改后的图片宽高
  • dst: 输出图像
  • fx: 比例因子(宽度),0.5表示宽度缩放成原来的一半
  • fy: 比例因子(高度),0.5表示高度缩放成原来的一半
  • interpolation: 插值法

平移

平移是物体位置的移动。如果您知道 (x, y) 方向的偏移,让它成为(tx, ty),M你可以按如下方式创建变换矩阵:

M = [[1, 0, tx], [0, 1, ty]]

你可以把它变成一个np类型的Numpy数组。np.float32()传递到cv2.warpAffine()函数,请看下面栗子:

import cv2
import numpy as np
from matplotlib import pyplot as pltlogo = cv2.imread('logo.png')
rows, cols = logo.shape[:2]
# 水平向右平移50个像素,垂直向下平移100个像素
M = np.float32([[1, 0, 50], [0, 1, 100]])
dst = cv2.warpAffine(logo, M, (cols, rows))
plt.subplot(121),plt.imshow(logo, 'gray'),plt.title('logo')
plt.subplot(122),plt.imshow(dst, 'gray'),plt.title('dst')
plt.show()

效果如下:

2r1orR.png

从效果图可以看到,图片水平向右移动了50个像素,垂直向下移动了100个像素。warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)参数详解如下:

  • src: 输入图像
  • M: 2X3的变换矩阵
  • dsize: 指定图像输出尺寸
  • dst: 输出图像
  • flags: 插值算法标识符

旋转

旋转跟平移一样,同样是通过cv2.warpAffine()函数来实现的。在上面我们知道这个函数接收一个变换矩阵,为了得到这个变换矩阵,OpenCV 提供了一个函数cv2.getRotationMatrix2D()。下面我们来实现,将logo图像以中心点为圆心,逆时针旋转90度,代码如下:

import cv2
import numpy as np
from matplotlib import pyplot as pltlogo = cv2.imread('logo.png')
rows, cols = logo.shape[:2]
M = cv2.getRotationMatrix2D((int(cols / 2), int(rows / 2)), 90, 1)
dst = cv2.warpAffine(logo, M, (cols, rows))
plt.subplot(121),plt.imshow(logo, 'gray'),plt.title('logo')
plt.subplot(122),plt.imshow(dst, 'gray'),plt.title('dst')
plt.show()

效果如下:

2ruLef.png

从效果图可以看到,图片围绕中心点逆时针旋转了90度。getRotationMatrix2D(center, angle, scale)参数详解如下:

  • center: 旋转的中心点
  • angle: 旋转角度,正数为逆时针,负数为顺时针
  • scale: 缩放因子

仿射变换

在仿射变换中,原始图像中的所有平行线在输出图像中仍将平行。为了找到变换矩阵,我们需要输入图像中的三个点及其在输出图像中的对应位置。我们可以使用cv2.getAffineTransform()函数将创建一个2*3矩阵,该矩阵将传递给cv2.warpAffine()函数,使用如下:

import cv2
import numpy as np
from matplotlib import pyplot as pltqipan = cv2.imread('qipan.png')
# 在棋盘中描三个点
cv2.circle(qipan, (103, 103), 5, (255, 0, 0), -1)
cv2.circle(qipan, (103, 196), 5, (255, 0, 0), -1)
cv2.circle(qipan, (196, 103), 5, (255, 0, 0), -1)
rows, cols = qipan.shape[:2]
pts1 = np.float32([[103, 103], [103, 196], [196, 103]])
pts2 = np.float32([[30, 120],[200, 50],[80, 220]])
M = cv2.getAffineTransform(pts1, pts2)
dst = cv2.warpAffine(qipan, M, (rows, cols))
plt.subplot(121),plt.imshow(qipan, 'gray'),plt.title('qipan')
plt.subplot(122),plt.imshow(dst, 'gray'),plt.title('dst')
plt.show()

效果如下:

26daaF.png

从效果图可以看到,原始图像中的所有平行线在输出图像中仍然平行。getAffineTransform(src, dst)参数详解如下:

  • src: 输入图像的三个点坐标
  • dst: 输出图像的三个点坐标

透视变换

对于透视变换,你需要一个3*3变换矩阵,即使在变换之后,直线仍将保持笔直。要找到这个变换矩阵,你需要输入图像上的4个点和输出图像上对应的点。我们可以通过函数cv2.getPerspectiveTransform()找到变换矩阵,然后再将这个变换矩阵应用到cv2.warpPerspective()函数当中,使用如下:

import cv2
import numpy as np
from matplotlib import pyplot as pltqipan = cv2.imread('qipan-1.png')
pst1 = [[88, 30], [812, 30], [37, 848], [900, 832]]
pst2 = [[0, 0], [500, 0], [0, 500], [500, 500]]
# 在原图上绘制4个点
cv2.circle(qipan, pst1[0], 5, (255, 0, 0), -1)
cv2.circle(qipan, pst1[1], 5, (255, 0, 0), -1)
cv2.circle(qipan, pst1[2], 5, (255, 0, 0), -1)
cv2.circle(qipan, pst1[3], 5, (255, 0, 0), -1)
# 获取变换矩阵
M = cv2.getPerspectiveTransform(np.float32(pst1), np.float32(pst2))
# 透视变换
dst = cv2.warpPerspective(qipan, M, (500, 500))
# 在输出图像中再绘制4个点
cv2.circle(dst, pst2[0], 5, (255, 0, 0), -1)
cv2.circle(dst, pst2[1], 5, (255, 0, 0), -1)
cv2.circle(dst, pst2[2], 5, (255, 0, 0), -1)
cv2.circle(dst, pst2[3], 5, (255, 0, 0), -1)
plt.subplot(121),plt.imshow(qipan, 'gray'),plt.title('qipan')
plt.subplot(122),plt.imshow(dst, 'gray'),plt.title('dst')
plt.show()

效果如下:

REiP00.png

从效果可以看出,即使在变换之后,直线仍将保持笔直!cv2.getPerspectiveTransform(src, dst, solveMethod=None)参数详解如下:

  • src: 源图像中四边形顶点的坐标
  • dst: 目标图像中相应四边形顶点的坐标

cv2.warpPerspective(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None)参数详解如下:

  • src: 输入图像
  • M: 3X3的变换矩阵
  • dsize: 指定图像输出尺寸
  • dst: 输出图像
  • flags: 插值算法标识符
http://www.ds6.com.cn/news/18850.html

相关文章:

  • 周口seo 网站班级优化大师使用指南
  • 云电脑平台哪个最好信息流优化师证书
  • dedecms学校网站模板免费下载2345导航网址
  • 设计网站怎么做的肇庆seo外包公司
  • 网络营销网站建设山东今日热搜
  • 怎么卖wordpress模板什么公司适合做seo优化
  • 网站开源程序营销外包公司
  • ppt模板免费下载的网站百度搜索网页版入口
  • 网站建设泽宇seo外链发布工具
  • 邯郸房产信息网恋家网安徽网站seo
  • 做装修哪个网站推广好产品推广方式及推广计划
  • 建设小型网站系统开题报告杭州seo代理公司
  • 做网站的是什么能打开各种网站的浏览器下载
  • 高端网站开发建设成都专业的整站优化
  • 珠宝类企业网站(手机端)各大网站收录查询
  • 南充免费推广网站seo快速排名优化
  • 长春网站优化服务站长推广工具
  • 外贸网站运营怎么做网络营销推广的手段
  • 大资讯wordpress主题网站seo优化服务
  • 做暧暧视频免费视频老司机网站软文代理平台
  • 注册企业营业执照需要什么条件seo推广公司有哪些
  • 如何做企业网站的更新2021年经典营销案例
  • 阿里云建站wordpressb2b外贸接单平台
  • 源码交易平台网站源码比较好的网络优化公司
  • 做公司网站用哪个空间好永久不收费免费的聊天软件
  • 中山小榄网站如何推广软件
  • 中冶东北建设网站宣传推广的十种方式
  • 龙岗区网站建设郑州网
  • 个人网站展示上海百度seo牛巨微
  • 网站如何屏蔽ip什么平台可以做引流推广