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

如何做微信电子书下载网站外链发布的平台最好是

如何做微信电子书下载网站,外链发布的平台最好是,做批手表批发发的网站,一级域名做网站1. 学习目标 学习 OpenCV 图像的翻转函数 cv.flip;学习 NumPy 矩阵的反转函数 np.flip;自己实现矩阵反转的函数。 2. OpenCV 翻转 翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直…

1. 学习目标

  1. 学习 OpenCV 图像的翻转函数 cv.flip;
  2. 学习 NumPy 矩阵的反转函数 np.flip;
  3. 自己实现矩阵反转的函数。

2. OpenCV 翻转

翻转也称镜像,是指将图像沿轴线进行轴对称变换。水平镜像是将图像沿垂直中轴线进行左右翻转,垂直镜像是将图像沿水平中轴线进行上下翻转,水平垂直镜像是水平镜像和垂直镜像的叠加。

2.1 cv.flip() 函数说明

cv.flip(src, flipCode[, dst]) -> dst

2.2 参数说明

参数说明
src表示输入图像。
flipCode表示翻转轴线的控制参数,整型(int)。
dst表示变换操作的输出图像,可选项。

2.3 flipCode 值说明

说明
0表示水平翻转。
1表示垂直翻转。
-1表示对角线翻转。

3. 翻转实例

3.1 实例代码

import cv2 as cv
import numpy as np# 图像翻转
def image_flip():img = cv.imread("./images/lena.jpg")cv.imshow("original", img)# 水平翻转horizontally_img = cv.flip(img,0)cv.imshow("horizontally_img", horizontally_img)# 垂直翻转vertically_img = cv.flip(img,1)cv.imshow("vertically_img", vertically_img)# 对角线翻转horizontally_vertically_img = cv.flip(img,-1)cv.imshow("horizontally_vertically_img", horizontally_vertically_img)cv.waitKey(0)cv.destroyAllWindows()
if __name__ == "__main__":image_flip()

3.2 翻转效果

输入图片说明

4. 矩阵反转

4.1 np.flip() 函数说明

numpy.flip(array, axis) → dst_array

4.2 参数说明

参数说明
array表示输入的数组。
axis表示[integer]轴,阵列沿此轴反转。

4.3 axis 值说明

说明
0表示上下反转。
1表示左右反转。

5. 反转实例

5.1 实例代码

import cv2 as cv
import numpy as np# 阵列反转
def image_np_flip():img = cv.imread("./images/lena_small.jpg")cv.imshow("original", img)# 水平翻转horizontally_img = np.flip(img,0)cv.imshow("horizontally_img", horizontally_img)# 垂直翻转vertically_img = np.flip(img,1)cv.imshow("vertically_img", vertically_img)# 对角线翻转horizontally_vertically_img0 = np.flip(img,0)horizontally_vertically_img = np.flip(horizontally_vertically_img0,1)cv.imshow("horizontally_vertically_img", horizontally_vertically_img)cv.waitKey(0)cv.destroyAllWindows()
if __name__ == "__main__":image_np_flip()

5.2 反转效果

输入图片说明

6. 实现阵列反转

6.1 实现阵列上下反转

  1. 获取阵列的宽高值;
  2. 复制一份改阵列,防止反转的时候影响了原阵列;
  3. 上下翻转只需要循环阵列的行,将第一行和最后一行互换,将第二行和倒数第二行互换!!!
  4. 注意:由于 range 是从 0 开始,所以最后一行需要先减 1!!!
  5. 注意:解构赋值直接将两个值进行互换,但是换的第一个值需要复制一份互换np.copy(src[i])!!!
# 上下翻转
def flip_ud(src):h,w,c = src.shapesrc = np.copy(src)for i in range(h//2):# cur = np.copy(src[i])# src[i] = src[h-i-1]# src[h-i-1] = cursrc[i],src[h-i-1] = src[h-i-1],np.copy(src[i])return src

6.2 实现阵列左右反转

  1. 对比上下反转,左右反转需要循环列一层的互换!!!
# 左右翻转
def flip_lr(src):h,w,c = src.shapesrc = np.copy(src)for i in range(h):for j in range(w//2):src[i][j],src[i][w-j-1] = src[i][w-j-1],np.copy(src[i][j])return src

6.3 实现阵列左上角和右下角反转

# 图像左上角和右下角翻转
def flip_lu_rd(src):h,w,c = src.shapesrc = np.copy(src)# 左上角和右下角翻转for i in range(h//2):for j in range(w//2):src[i][j],src[h-i-1][w-j-1] = src[h-i-1][w-j-1],np.copy(src[i][j])return src

6.4 使用 6.3 的方法实现对角线反转

  1. 图像左上角和右下角翻转;
  2. 右上角和左下角翻转;
    2.1 左右翻转;
    2.2 图像左上角和右下角翻转;
    2.3 左右翻转图像还原。
def flip_ud_lr(src):# 图像左上角和右下角翻转src = flip_lu_rd(src)# 右上角和左下角翻转# 1. 左右翻转src = flip_lr(src)# 2. 图像左上角和右下角翻转src = flip_lu_rd(src)# 3. 左右翻转图像还原src = flip_lr(src)return src

6.5 直接使用 6.1 和 6.2 实现对角线反转

def flip_ud_lr(src):# 上下翻转src = flip_ud(src)# 左右翻转src = flip_lr(src)return src

7. 实现图像翻转实例

7.1 翻转实例代码

# 上下翻转
def flip_ud(src):h,w,c = src.shapesrc = np.copy(src)for i in range(h//2):# cur = np.copy(src[i])# src[i] = src[h-i-1]# src[h-i-1] = cursrc[i],src[h-i-1] = src[h-i-1],np.copy(src[i])return src# 左右翻转
def flip_lr(src):h,w,c = src.shapesrc = np.copy(src)for i in range(h):for j in range(w//2):src[i][j],src[i][w-j-1] = src[i][w-j-1],np.copy(src[i][j])return src# 图像左上角和右下角翻转
def flip_lu_rd(src):h,w,c = src.shapesrc = np.copy(src)# 左上角和右下角翻转for i in range(h//2):for j in range(w//2):src[i][j],src[h-i-1][w-j-1] = src[h-i-1][w-j-1],np.copy(src[i][j])return srcdef flip_ud_lr(src):# 图像左上角和右下角翻转src = flip_lu_rd(src)# 右上角和左下角翻转# 1. 左右翻转src = flip_lr(src)# 2. 图像左上角和右下角翻转src = flip_lu_rd(src)# 3. 左右翻转图像还原src = flip_lr(src)return srcdef image_self_flip():img = cv.imread("./images/lena_small.jpg")# cv.imshow("original", img)# 水平翻转horizontally_img = flip_ud(img)cv.imshow("horizontally_img", horizontally_img)# 垂直翻转vertically_img = flip_lr(img)cv.imshow("vertically_img", vertically_img)# 对角线翻转horizontally_vertically_img = flip_ud_lr(img)cv.imshow("horizontally_vertically_img", horizontally_vertically_img)cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":image_self_flip()

实现效果

输入图片说明

8. 总结

  1. 注意: 阵列的反转OpenCV 的翻转 对比,少了对角线翻转,但是使用【上下反转+左右反转】能够实现相同的效果;
  2. 自己使用循环阵列的方法实现水平、垂直、对角线翻转,但是相比原生方法,计算很慢,需要进行优化!!!
http://www.hkea.cn/news/367035/

相关文章:

  • 网站制作营销型哪些网站可以发广告
  • 最新政府网站建设理念广州头条新闻最新
  • 济宁网站建设神华线上推广的三种方式
  • 我要表白网站在线制作如何做网站的教程
  • 福州论坛建站模板策划网络营销活动
  • 网站建设 天津百度市场应用官方app
  • 动态网站制作流程友情链接的定义
  • 企业网站开发方案免费建立一个网站
  • 网站引导页面制作的四个任务名称推广引流的10个渠道
  • 南宁网站建设制作后台网站关键词优化价格
  • 微信小程序商城制作公司宁波seo推广服务
  • 响应式购物网站公司seo是什么意思
  • 360未经证实的网站如何做电商运营方案
  • 网站建设类公司排名营销方案范文100例
  • 郑州网站设计 郑州网站开发网络优化有前途吗
  • 黑河做网站首页关键词排名优化
  • 网站二级域名怎么解析公司网络搭建
  • wordpress做网店win10优化大师是官方的吗
  • 弄个做网站公司产品宣传
  • 商品房建设信息网站googleplay商店
  • 菏泽 网站建设优化工具箱
  • 网站建设找哪家公司百度搜索热度
  • 网页设计论文引言北海百度seo
  • 网站空间哪家做的好网络营销的常用工具
  • 网站开发具体问题优化营商环境
  • wordpress4.5 火车头廊坊seo培训
  • 怎么做多个网站单点登录艺考培训
  • 网站怎么做双语种seo关键词如何设置
  • 用java做的游戏下载网站有哪些内容成都网络推广优化
  • 慈溪市网站建设google官网