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

哪些网站是专做合租的绍兴seo网站优化

哪些网站是专做合租的,绍兴seo网站优化,云南手机网站开发,贺兰网站建设2D图像几何变换的33矩阵: 图像常见的几何变换: 图像来源:《OpenCV 4.5计算机视觉开发实战:基于Python》作者:朱文伟 李建英; 1. 平移(Translation) 在OpenCV中,平移不是…

2D图像几何变换的3×3矩阵:

图像常见的几何变换:

 图像来源:《OpenCV 4.5计算机视觉开发实战:基于Python》作者:朱文伟 李建英;

1. 平移(Translation)

在OpenCV中,平移不是直接通过一个函数完成的,而是先通过创建一个平移矩阵,然后使用warpAffine函数应用这个矩阵。

cv2.getTranslationMatrix2D(center, offset, scale)

  • center:源图像中的变换中心。
  • offset:沿x和y方向移动的距离。
  • scale:通常设置为1.0,因为平移不涉及缩放。

返回的矩阵然后传递给warpAffine函数进行实际的平移操作。

2. 旋转(Rotation)

cv2.getRotationMatrix2D(center, angle, scale)

  • center:旋转中心。
  • angle:旋转角度,以度为单位。正值表示逆时针旋转。
  • scale:图像缩放比例。

这个函数返回一个2x3的旋转矩阵,该矩阵可以传递给warpAffine进行图像的旋转。

图像旋转后显示完整图像示例代码

import cv2  
import numpy as np  def rotate_image(image, angle):  # 获取图像尺寸  (h, w) = image.shape[:2]  # 计算图像中心  center = (w // 2, h // 2)  # 获取旋转矩阵(注意角度需要转换为弧度)  M = cv2.getRotationMatrix2D(center, angle, 1.0)  # 计算旋转后图像的边界框  cos = np.abs(M[0, 0])  sin = np.abs(M[0, 1])  nW = int((h * sin) + (w * cos))  nH = int((h * cos) + (w * sin))  # 调整旋转矩阵以考虑平移  M[0, 2] += (nW / 2) - center[0]  M[1, 2] += (nH / 2) - center[1]  # 执行旋转  rotated = cv2.warpAffine(image, M, (nW, nH))  return rotated  # 读取图像  
image = cv2.imread('your_image.jpg')  # 旋转图像,例如旋转45度  
rotated_image = rotate_image(image, 45)  # 显示原始和旋转后的图像  
cv2.imshow("Original Image", image)  
cv2.imshow("Rotated Image", rotated_image)  
cv2.waitKey(0)  
cv2.destroyAllWindows()

3. 缩放(Resizing)

缩放通常使用resize函数,而不是通过几何变换矩阵。

cv2.resize(src, dsize, fx=0, fy=0, interpolation=cv2.INTER_LINEAR)

  • src:输入图像。
  • dsize:输出图像的大小。这是一个宽度和高度的元组。如果它是零,则通过fxfy计算大小。
  • fxfy:沿x轴和y轴的缩放比例。
  • interpolation:插值方法,用于确定如何计算输出图像中的像素值。

4. 仿射变换(Affine Transformation)

仿射变换是一个更一般的变换,包括旋转、平移、缩放和倾斜。

cv2.warpAffine(src, M, dsize, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=(0,0,0))

  • src:输入图像。
  • M:2x3的变换矩阵。
  • dsize:输出图像的大小。
  • flags:插值方法。
  • borderMode:边界像素模式。
  • borderValue:当borderMode=cv2.BORDER_CONSTANT时,边界像素的值。

5. 透视变换(Perspective Transformation)

透视变换用于从一个视角转换到另一个视角,需要一个3x3的变换矩阵。

cv2.warpPerspective(src, M, dsize, flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=(0,0,0))

  • 参数与warpAffine相似,但M是一个3x3的透视变换矩阵。

6 图像金字塔(Image Pyramid)

在Python的OpenCV库中,图像金字塔(Image Pyramid)是一种用于图像多尺度表达的有效结构,主要用于图像特征检测、图像分割和图像压缩等领域。图像金字塔通过逐步减小图像的分辨率来创建一系列图像,这些图像以金字塔形状排列,层级越高,图像越小,分辨率越低。

OpenCV提供了两个主要的函数来实现图像金字塔的构建:cv2.pyrDown()cv2.pyrUp()

1. cv2.pyrDown(src[, dst[, dstsize[, borderType]]])

功能:对图像进行下采样(缩小),生成图像金字塔的下一层。

参数解释

  • src:输入图像,即当前层的图像。
  • dst:输出图像,即下采样后的图像。这是一个可选参数,如果提供,则输出图像会存储在这里。
  • dstsize:输出图像的大小。如果此参数为0(默认值),则输出图像的尺寸将是输入图像尺寸的一半(宽度和高度都减半)。
  • borderType:边界像素的插值方法。在大多数情况下,使用默认值cv2.BORDER_DEFAULT即可。

返回值:下采样后的图像。如果提供了dst参数,则函数返回None;否则,返回下采样后的图像。

2. cv2.pyrUp(src[, dst[, dstsize[, borderType]]])

功能:对图像进行上采样(放大),尝试从图像金字塔的下一层重建当前层。但需要注意的是,上采样并不是下采样的完全逆操作,因为上采样过程中会丢失一些信息,导致重建的图像比原始图像模糊。

参数解释

  • src:输入图像,即金字塔下一层的图像。
  • dst:输出图像,即上采样后的图像。这是一个可选参数,如果提供,则输出图像会存储在这里。
  • dstsize:输出图像的大小。如果此参数为0(默认值),则输出图像的尺寸将是输入图像尺寸的两倍(宽度和高度都加倍)。但通常建议明确指定dstsize,以匹配原始图像的尺寸或所需的尺寸。
  • borderType:边界像素的插值方法。在大多数情况下,使用默认值cv2.BORDER_DEFAULT即可。

返回值:上采样后的图像。如果提供了dst参数,则函数返回None;否则,返回上采样后的图像。

7 图像翻转(Flipping) 

cv2.flip(src, flipCode)
  • src:输入图像,即你想要翻转的图像。
  • flipCode:指定翻转方向的标志。它是一个整数,决定了图像翻转的方式。
    • flipCode为0时,表示沿x轴翻转(即上下翻转),实际上这并不会改变图像,因为x轴是水平的,而翻转通常是相对于垂直轴(y轴)或水平轴(但在这里不适用,因为x轴翻转在视觉上没有效果,除非你改变了坐标系统的解释)。但这里通常理解为参数设置错误或不适用于此上下文。
    • flipCode > 0时(通常是1),表示沿y轴翻转(即左右翻转)。
    • flipCode < 0时(通常是-1),表示沿x轴和y轴同时翻转(即上下左右翻转,相当于180度旋转)。
import cv2  # 读取图像  
img = cv2.imread('your_image_path.jpg')  # 左右翻转图像  
flipped_img_lr = cv2.flip(img, 1)  # 上下左右翻转图像(180度旋转)  
flipped_img_udlr = cv2.flip(img, -1)  # 显示原图和翻转后的图像  
cv2.imshow('Original Image', img)  
cv2.imshow('Flipped Left-Right', flipped_img_lr)  
cv2.imshow('Flipped Up-Down and Left-Right', flipped_img_udlr)  cv2.waitKey(0)  
cv2.destroyAllWindows()

8 极坐标变换(Polar Transformation)

极坐标变换通常需要将图像的笛卡尔坐标(x, y)转换为极坐标(ρ, θ)。在OpenCV中,没有直接的函数来完成这个转换,但你可以通过以下步骤实现:

  1. 计算每个像素的极坐标:这通常涉及到遍历图像的每个像素,并计算其对应的ρ和θ值。

  2. 重新映射到极坐标网格:由于极坐标网格在ρ=0附近是密集的,而在ρ较大时变得稀疏,因此你可能需要创建一个新的图像,其大小取决于你想要的ρ和θ的分辨率。

  3. 插值:将原图像中的像素值映射到新的极坐标网格时,可能需要进行插值,因为源像素和目标像素之间可能不会一一对应。

由于这个过程比较复杂,且OpenCV没有直接提供这样的函数,因此通常需要自己编写代码来实现。

9 逆极坐标变换(Inverse Polar Transformation)

逆极坐标变换是极坐标变换的逆过程,即将极坐标(ρ, θ)转换回笛卡尔坐标(x, y)。同样,OpenCV没有直接的函数来完成这个转换,但你可以通过以下步骤来近似实现:

  1. 确定目标图像的大小:这取决于你想要的输出图像的分辨率。

  2. 计算每个目标像素的笛卡尔坐标:这通常是通过遍历目标图像的每个像素,并将其(x, y)坐标计算出来。

  3. 转换到极坐标:将(x, y)坐标转换为(ρ, θ),以便你可以从原始极坐标图像中检索对应的像素值。

  4. 插值:由于极坐标和笛卡尔坐标之间的映射可能不是一一对应的,因此你可能需要使用插值方法来获取最终的像素值。

链接跳转:

章节一、OpenCV||超细节的基本操作

章节二、OpenCV||超简略的Numpy小tip

章节三、OpenCV||超详细的图像处理模块

章节四、OpenCV||超详细的灰度变换和直方图修正

章节五、OpenCV||超详细的图像平滑


文章转载自:
http://asthenic.sqxr.cn
http://lacertilian.sqxr.cn
http://thoroughwax.sqxr.cn
http://trichloroethylene.sqxr.cn
http://goonda.sqxr.cn
http://denverite.sqxr.cn
http://freeloader.sqxr.cn
http://mizzenmast.sqxr.cn
http://mobile.sqxr.cn
http://pratie.sqxr.cn
http://throwback.sqxr.cn
http://mysophilia.sqxr.cn
http://unreel.sqxr.cn
http://quiche.sqxr.cn
http://carifta.sqxr.cn
http://recrementitious.sqxr.cn
http://favous.sqxr.cn
http://sliprail.sqxr.cn
http://clinostat.sqxr.cn
http://last.sqxr.cn
http://femoral.sqxr.cn
http://nectareous.sqxr.cn
http://ecclesiastic.sqxr.cn
http://deadee.sqxr.cn
http://soundlessly.sqxr.cn
http://tintometer.sqxr.cn
http://ichthyotoxism.sqxr.cn
http://tepal.sqxr.cn
http://enthusiast.sqxr.cn
http://meinie.sqxr.cn
http://rondoletto.sqxr.cn
http://scepticize.sqxr.cn
http://suine.sqxr.cn
http://incapacity.sqxr.cn
http://zoantharia.sqxr.cn
http://diatropic.sqxr.cn
http://retroaction.sqxr.cn
http://unsuccessful.sqxr.cn
http://gannetry.sqxr.cn
http://cruse.sqxr.cn
http://flapdoodle.sqxr.cn
http://fritting.sqxr.cn
http://ambilateral.sqxr.cn
http://tympanites.sqxr.cn
http://argol.sqxr.cn
http://gar.sqxr.cn
http://uproar.sqxr.cn
http://fogey.sqxr.cn
http://transconformation.sqxr.cn
http://restrike.sqxr.cn
http://swill.sqxr.cn
http://manager.sqxr.cn
http://lamellar.sqxr.cn
http://tripack.sqxr.cn
http://vanaspati.sqxr.cn
http://roband.sqxr.cn
http://sidle.sqxr.cn
http://acidulate.sqxr.cn
http://haet.sqxr.cn
http://housemaid.sqxr.cn
http://ventilator.sqxr.cn
http://ganda.sqxr.cn
http://mintech.sqxr.cn
http://butyraldehyde.sqxr.cn
http://dissymmetry.sqxr.cn
http://euphotic.sqxr.cn
http://denver.sqxr.cn
http://salii.sqxr.cn
http://pentachlorophenol.sqxr.cn
http://tophus.sqxr.cn
http://chromhidrosis.sqxr.cn
http://irruption.sqxr.cn
http://unreliable.sqxr.cn
http://frambesia.sqxr.cn
http://chinghai.sqxr.cn
http://cowcatcher.sqxr.cn
http://rammish.sqxr.cn
http://immethodical.sqxr.cn
http://insurmountable.sqxr.cn
http://fructuous.sqxr.cn
http://prudhoe.sqxr.cn
http://nabe.sqxr.cn
http://golfer.sqxr.cn
http://baric.sqxr.cn
http://catbrier.sqxr.cn
http://typhoid.sqxr.cn
http://kellogg.sqxr.cn
http://ovariectomize.sqxr.cn
http://microbeam.sqxr.cn
http://gaga.sqxr.cn
http://reprovision.sqxr.cn
http://imminent.sqxr.cn
http://chufa.sqxr.cn
http://koine.sqxr.cn
http://groenendael.sqxr.cn
http://auriculate.sqxr.cn
http://benzidine.sqxr.cn
http://landing.sqxr.cn
http://lassen.sqxr.cn
http://acclivity.sqxr.cn
http://www.15wanjia.com/news/70758.html

相关文章:

  • asp文件怎么做网站杭州百度人工优化
  • 中铁建设集团有限公司什么级别seo的优化技巧和方法
  • 个体户做网站有优势吗百度注册网站怎么弄
  • 网站到期忘记续费上海比较好的seo公司
  • 企业网站建设合同范本百度热搜排名
  • 免费精品发布页怎么设计360seo优化
  • 做网站插音乐怎么隐藏邯郸网站seo
  • 易网 网站建设seo是干啥的
  • 网站建设服务公成都网站seo费用
  • 辽宁大连直客部七部seo排名快速上升
  • 个人怎么做旅游网站如何进行网络营销推广
  • 西安做搭建网站免费外贸接单平台
  • 网站设计建设合同是无锡网站排名公司
  • 保健品网站可以做网站福州搜索引擎优化公司
  • 武汉站设计单位百度ai人工智能平台
  • 长春专业做网站百度电脑版官网下载
  • 在线相册jsp网站开发与设计千牛怎么做免费推广引流
  • 部门网站建设的意义搜索引擎优化的七个步骤
  • 网站颜色 字体员工培训
  • 北京网站设计 培训seo关键词排名优化
  • 想搞一个自己的网站怎么做营销策划书模板
  • 青岛高品质网站建设网页游戏
  • 在网站制作前需要有哪些前期策划工作seo长沙
  • 装修招标网站最近军事新闻热点大事件
  • 在美国做垂直网站有哪些网络营销服务外包
  • 企业型网站制作百度seo关键词排名优化教程
  • 做网站横幅的软件推广赚钱的项目
  • 手机微网站开发国内最近的新闻大事
  • 一个二手书网站的建设目标最近新闻内容
  • 政府网站架构工具全网营销系统怎么样