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

【图像处理】- 基本图像操作

基本图像操作详解

基本图像操作是图像处理的基础,涵盖了对图像进行简单但重要的变换。以下是几种常见的基本图像操作及其详细说明:

1. 裁剪 (Cropping)

描述:从原始图像中提取一个矩形区域。

实现方法

  • 使用图像的坐标系指定左上角和右下角的坐标。
  • 提取指定区域内的像素值。

Python代码示例 (使用OpenCV)

import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 定义裁剪区域的坐标 (x, y, width, height)
x, y, w, h = 50, 50, 200, 200
cropped_image = image[y:y+h, x:x+w]

# 显示结果
cv2.imshow('Cropped Image', cropped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

2. 缩放 (Resizing)

描述:调整图像的大小,可以放大或缩小。

实现方法

  • 指定新的宽度和高度。
  • 使用插值算法(如最近邻、双线性、双三次)来计算新像素值。

Python代码示例 (使用OpenCV)

import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 定义新的尺寸
new_width = 300
new_height = 400
resized_image = cv2.resize(image, (new_width, new_height), interpolation=cv2.INTER_LINEAR)

# 显示结果
cv2.imshow('Resized Image', resized_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

3. 旋转 (Rotation)

描述:将图像绕某个点旋转一定角度。

实现方法

  • 计算旋转矩阵。
  • 应用仿射变换。

Python代码示例 (使用OpenCV)

import cv2
import numpy as np

# 读取图像
image = cv2.imread('input_image.jpg')

# 获取图像中心
height, width = image.shape[:2]
center = (width // 2, height // 2)

# 定义旋转角度和缩放比例
angle = 45
scale = 1.0

# 获取旋转矩阵
rotation_matrix = cv2.getRotationMatrix2D(center, angle, scale)

# 应用旋转
rotated_image = cv2.warpAffine(image, rotation_matrix, (width, height))

# 显示结果
cv2.imshow('Rotated Image', rotated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

4. 翻转 (Flipping)

描述:水平或垂直翻转图像。

实现方法

  • 水平翻转:沿y轴翻转。
  • 垂直翻转:沿x轴翻转。
  • 水平垂直翻转:同时沿x轴和y轴翻转。

Python代码示例 (使用OpenCV)

import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 翻转类型
flip_code = 1  # 1: 水平翻转, 0: 垂直翻转, -1: 水平垂直翻转
flipped_image = cv2.flip(image, flip_code)

# 显示结果
cv2.imshow('Flipped Image', flipped_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

5. 颜色空间转换 (Color Space Conversion)

描述:将图像从一种颜色空间转换为另一种颜色空间。

常见颜色空间

  • RGB:红绿蓝三原色模型。
  • Grayscale:灰度图像。
  • HSV:色调、饱和度、亮度模型。
  • YUV:亮度、色差模型。

Python代码示例 (使用OpenCV)

import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 转换为HSV图像
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 显示结果
cv2.imshow('Grayscale Image', gray_image)
cv2.imshow('HSV Image', hsv_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

6. 通道分离与合并 (Splitting and Merging Channels)

描述

  • 分离:将多通道图像拆分为单个通道。
  • 合并:将多个单通道图像组合成一个多通道图像。

Python代码示例 (使用OpenCV)

import cv2

# 读取图像
image = cv2.imread('input_image.jpg')

# 分离通道
b, g, r = cv2.split(image)

# 合并通道
merged_image = cv2.merge([b, g, r])

# 显示结果
cv2.imshow('Blue Channel', b)
cv2.imshow('Green Channel', g)
cv2.imshow('Red Channel', r)
cv2.imshow('Merged Image', merged_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述


http://www.kler.cn/a/539396.html

相关文章:

  • 代码随想录二刷|回溯4
  • R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据
  • 视觉硬件选型和算法选择(CNN)
  • idea整合deepseek实现AI辅助编程
  • YouBIP 项目
  • 数据结构与算法-递归
  • Linux网络之http协议
  • Docker安装pypiserver私服
  • Jupyter Notebook 6/7 设置代码补全
  • Windows图形界面(GUI)-QT-C/C++ - QT 文本编辑控件详解
  • 旋转位置编码(RoPE)讲解和代码实现
  • < OS 有关 > Ubuntu 版本升级 实践 24.04 -> 24.10, 安装 .NET
  • Ranger 2.1.0 Admin安装
  • 处理数据及其选择关键列进行一次聚类
  • 【前端基础】深入解析JavaScript中的编译原理、内存管理、垃圾回收机制和正则表达式
  • 深度学习中的Checkpoint是什么?
  • 软件工程与土木工程的不同
  • uniapp访问django目录中的图片和视频,2025[最新]中间件访问方式
  • DeepSeeek如何在Window本地部署
  • 全面的生成式语言模型学习路线
  • MySQL的字段类型
  • Django开发入门 – 0.Django基本介绍
  • 【Matlab优化算法-第13期】基于多目标优化算法的水库流量调度
  • SQL中 的exists用法
  • 用户管理(MySQL)
  • Rust语言的计算机基础