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

使用 OpenCV 进行视觉图片调整的几种常见方法

以下是使用 OpenCV 进行视觉图片调整的几种常见方法:

调整图片大小

  • 指定目标尺寸:使用cv2.resize()函数,通过设定目标图像的宽度和高度来调整图片大小。例如,将图片调整为 200x200 像素:

import cv2
image = cv2.imread(‘example.jpg’)
resized_image = cv2.resize(image, (200, 200))
cv2.imshow(‘Original Image’, image)
cv2.imshow(‘Resized Image’, resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

  • 指定缩放比例:通过设置fxfy参数来确定宽度和高度的缩放比例。如将图片按照 0.5 倍的比例缩小:

resized_image = cv2.resize(image, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
cv2.imwrite(‘resized_image.jpg’, resized_image)
* ```

旋转图片

  • 使用旋转变换矩阵:调用cv2.getRotationMatrix2D()函数获取旋转变换矩阵,然后利用cv2.warpAffine()函数进行仿射变换以实现图片旋转。例如,将图片绕中心点旋转 45 度:

import cv2
import numpy as np
image = cv2.imread(‘image.jpg’)
height, width = image.shape[:2]
center = (width / 2, height / 2)
rotate_matrix = cv2.getRotationMatrix2D(center, 45, 1)
rotated_image = cv2.warpAffine(image, rotate_matrix, (width, height))
cv2.imshow(‘Rotated Image’, rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

平移图片

  • 构建平移矩阵:通过构建一个平移矩阵,指定图片在 x 轴和 y 轴方向上的平移距离,再使用cv2.warpAffine()函数进行平移变换。例如,将图片在 x 轴方向平移 50 像素,y 轴方向平移 30 像素:

import cv2
import numpy as np
image = cv2.imread(‘image.jpg’)
height, width = image.shape[:2]
translation_matrix = np.float32([[1, 0, 50], [0, 1, 30]])
translated_image = cv2.warpAffine(image, translation_matrix, (width, height))
cv2.imshow(‘Translated Image’, translated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

翻转图片

  • 使用翻转函数:借助cv2.flip()函数实现图片的翻转操作,通过设置翻转方向参数flipCode来确定翻转方式。例如,分别沿 x 轴、y 轴和对角线翻转图片:

import cv2
image = cv2.imread(‘image.jpg’)
flipped_x = cv2.flip(image, 0) # 沿 x 轴翻转
flipped_y = cv2.flip(image, 1) # 沿 y 轴翻转
flipped_xy = cv2.flip(image, -1) # 沿对角线翻转
cv2.imshow(‘Flipped X Image’, flipped_x)
cv2.imshow(‘Flipped Y Image’, flipped_y)
cv2.imshow(‘Flipped XY Image’, flipped_xy)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

图像滤波

  • 均值滤波:利用cv2.blur()函数对图像进行均值滤波,通过设定滤波核的大小来控制滤波效果。例如,使用 5x5 的滤波核对图片进行均值滤波:

import cv2
image = cv2.imread(‘image.jpg’)
blurred_image = cv2.blur(image, (5, 5))
cv2.imshow(‘Blurred Image’, blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

  • 高斯滤波:使用cv2.GaussianBlur()函数对图像进行高斯滤波,需指定高斯核的大小和标准差。例如,使用 5x5 的高斯核对图片进行高斯滤波:

import cv2
image = cv2.imread(‘image.jpg’)
gaussian_blurred_image = cv2.GaussianBlur(image, (5, 5), 0)
cv2.imshow(‘Gaussian Blurred Image’, gaussian_blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```

图像裁剪

  • 获取感兴趣区域:通过设定裁剪区域的边界坐标,从原图中截取出感兴趣的部分。例如,裁剪出图片中左上角 200x100 像素大小的区域:

import cv2
image = cv2.imread(‘image.jpg’)
cropped_image = image[0:100, 0:200]
cv2.imshow(‘Cropped Image’, cropped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
* ```


文章转载自:
http://advisor.hyyxsc.cn
http://chairman.hyyxsc.cn
http://apian.hyyxsc.cn
http://analphabetic.hyyxsc.cn
http://agnolotti.hyyxsc.cn
http://chopinesque.hyyxsc.cn
http://chromosome.hyyxsc.cn
http://bootstrap.hyyxsc.cn
http://annulment.hyyxsc.cn
http://alternant.hyyxsc.cn
http://agnail.hyyxsc.cn
http://century.hyyxsc.cn
http://beanstalk.hyyxsc.cn
http://choreal.hyyxsc.cn
http://account.hyyxsc.cn
http://aerostatic.hyyxsc.cn
http://banderilla.hyyxsc.cn
http://bacteriolysin.hyyxsc.cn
http://amplidyne.hyyxsc.cn
http://casease.hyyxsc.cn
http://cancer.hyyxsc.cn
http://caducity.hyyxsc.cn
http://authorware.hyyxsc.cn
http://carper.hyyxsc.cn
http://bez.hyyxsc.cn
http://bootprint.hyyxsc.cn
http://bibitory.hyyxsc.cn
http://botanize.hyyxsc.cn
http://belsen.hyyxsc.cn
http://cerebella.hyyxsc.cn
http://www.dtcms.com/a/156783.html

相关文章:

  • 案例速成GO操作redis,个人笔记
  • 区块链VS传统数据库:金融数据存储的“信任”与“效率”博弈
  • 第十六届蓝桥杯网安初赛wp
  • SpringBoot集成WebSocket,单元测试执行报错
  • Ubuntu20.04 Ollama 配置相关
  • 区块链实战:Hyperledger Fabric多节点网络部署与高性能业务链码
  • 【Castle-X机器人】二、智能导览模块安装与调试
  • ASP.NET CORE部署IIS的三种方式
  • 【Android Compose】焦点管理
  • 使用 Truffle 和 Ganache 搭建本地以太坊开发环境并部署一个简单智能合约
  • Android学习总结之ANR问题
  • 阿里云VS AWS中国区:ICP备案全攻略与常见误区解析
  • QT对话框及其属性
  • 电机试验平台:实现精准测试与优化设计
  • 长尾词驱动SEO优化实战
  • Go context 包的底层实现原理
  • IntelliJ IDEA修改实体类成员变量的名称(引入了该实体类的全部文件也会自动更新变量的名称)
  • 基于 Nginx 的 WebSocket 反向代理实践
  • 探索 AI 在文化遗产保护中的新使命:数字化修复与传承
  • 使用css修饰网页元素
  • 认识哈希以及哈希表的模拟实现
  • Unity中文件上传以及下载,获取下载文件大小的解决方案
  • Ubuntu下安装vsode+qt搭建开发框架(一)
  • 智慧园区IOT项目与AI时代下的机遇 - Java架构师面试实战
  • 设计一个关键字统计程序:利用HashMap存储关键字统计信息,对用户输入的关键字进行个数统计。
  • P3309 [SDOI2014] 向量集 Solution
  • 浏览器界面无显示,提示“代理服务器可能有问题”,这是怎么回事呢?
  • Windows 安装 Neo4j 教程
  • 做大模型应用所需的一点点基础数学理论
  • 内存四区(栈)