计算机视觉技术及应用

例2.1

import cv2
# 读取2.1.jpg,等价于image = cv2.imread("2.1.jpg",1)
image = cv2.imread("2.1.jfif")
print(image)  # 打印输出
[[[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]

 [[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]

 [[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]

 ...

 [[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]

 [[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]

 [[238 233 194]
  [238 233 194]
  [238 233 194]
  ...
  [238 233 194]
  [238 233 194]
  [238 233 194]]]

例2.2

import cv2
# 读取2.1.jpg
image = cv2.imread("2.1.png")
# 在名为flower的窗口中显示2.1.jpg
cv2.imshow("flower", image)
# 按下任何键盘按键后
cv2.waitKey()
# 销毁所有窗口
cv2.destroyAllWindows()

在这里插入图片描述

例2.3

import cv2

image = cv2.imread("2.1.png")  # 读取2.1.jpg
# 把2.1.jpg保存为E盘根目录下的、Pictures文件夹中的1.jpg
cv2.imwrite("./Pictures/example1.png", image)

在这里插入图片描述

例2.4

import cv2
# 读取2.1.jpg
image_Color = cv2.imread("2.1.jfif")
# 打印彩色图像的(垂直像素,水平像素,通道数)
print("获取彩色图像的属性: ")
print("shape=", image_Color.shape)
# 打印彩色图像包含的像素个数
print("size=", image_Color.size)
# 打印彩色图像的数据类型
print("type=", image_Color.dtype)
# 读取与2.1.jpg (彩色图像)对应的灰度图像o4
image_Gray = cv2.imread("2.1.jfif",0)
print("获取灰度图像的属性: ")
# 打印灰度图像的(垂直像素,水平像素)
print("shape=", image_Gray.shape)
# 打印灰度图像包含的像素个数
print("size=", image_Gray.size)
# 打印灰度图像的数据类型
print("type=", image_Gray.dtype)
获取彩色图像的属性: 
shape= (1242, 1224, 3)
size= 4560624
type= uint8
获取灰度图像的属性: 
shape= (1242, 1224)
size= 1520208
type= uint8

例 2.6

import numpy as np
# 创建一维数组
n1 = np.array([1, 2, 3])
# 获取数据中的某个值
print(n1[0])
1

例 2.7

import numpy as np
#创建一维数组
n1=np array([1,2,3])
print(n1[0])
print(n1[1])
print(n1[0:2])
print(n1[1:])
print(n1[:2])
1
2
[1 2]
[2 3]
[1 2]

例 2.8

import numpy as np
# 创建一维数组
n1 = np.array([1, 2, 3])
print(n1[0])
print(n1[1])
print(n1[0:2])
print(n1[1:])
print(n1[:2])
1
2
[1 2]
[2 3]
[1 2]

例 2.9

import cv2

# 读取图像
img = cv2.imread("2.1.png")
# 按照宽100像素、高100像素的大小进行缩小
dst1 = cv2.resize(img, (100, 100))
# 按照宽400像素、高400像素的大小进行放大
dst2 = cv2.resize(img, (400, 400))
# 显示原图
cv2.imshow("img", img)
# 显示缩放图像
cv2.imshow("dst1", dst1)
cv2.imshow("dst2", dst2)
# 按下任何键盘按键后
cv2.waitKey()
# 释放所有窗体
cv2.destroyAllWindows()

在这里插入图片描述

例 2.10

import cv2
# 读取图像
img = cv2.imread("2.1.png")
# 将宽缩小到原来的1/3、高缩小到原来的1/2
dst3 = cv2.resize(img, None, fx=1 / 3, fy=1 / 2)
# 将宽、高放大2倍
dst4 = cv2.resize(img, None, fx=2, fy=2)
# 显示原图
cv2.imshow("img",img)
# 显示缩放图像
cv2.imshow("dst3", dst3)
# 显示缩放图像
cv2.imshow("dst4", dst4)
# 按下任何键盘按键后
cv2.waitKey()
# 释放所有窗体
cv2.destroyAllWindows()

在这里插入图片描述

例 2.11

import cv2

# 读取图像
img = cv2.imread("2.1.png")
# 沿X轴翻转
dst1 = cv2.flip(img, 0)
# 沿Y轴翻转
dst2 = cv2.flip(img, 1)
# 同时沿X轴、Y轴翻转
dst3 = cv2.flip(img, -1)
# 显示原图
cv2.imshow("img", img)
# 显示翻转之后的图像
cv2.imshow("dst1", dst1)
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)
# 按下任何键盘按键后
cv2.waitKey()
# 释放所有窗体
cv2.destroyAllWindows()

在这里插入图片描述

项目实施

项目实施1

import cv2
import numpy as np

img = cv2.imread('flower.png')
height, width = img.shape[:2]  # 读取原图像的长和宽
x = 100  # 自定义转换矩阵M的x轴移动值
y = 200  # 自定义转换矩阵M的y轴移动值
M = np.float32([[1, 0, x], [0, 1, y]])  # 构造转换矩阵M
move = cv2.warpAffine(img, M, (width, height))  # 平移映射
cv2.imshow('orginal', img)
cv2.imshow('move', move)
cv2.waitKey()
cv2.destroyAllWindows()


在这里插入图片描述

项目实施2

import cv2
import numpy as np
img = cv2.imread('flower.png')
x = cv2.flip(img, 0)  # 图x对原图像绕x轴翻转
y = cv2.flip(img, 1)  # 图y对原图像绕y轴翻转
xy = cv2.flip(img, -1)  # 图xy对原图像绕x轴y轴同时翻转
cv2.imshow('img', img)
cv2.imshow('x', x)
cv2.imshow('y', y)
cv2.imshow('xy', xy)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

项目实施3

import cv2
import numpy as np
img = cv2.imread('flower.png')
height, width = img.shape[:2]  # 读取原图像的长和宽
x = 100  # 自定义转换矩阵M的x轴移动值
y = 200  # 自定义转换矩阵M的y轴移动值
M = np.float32([[1, 0, x], [0, 1, y]])  # 构造转换矩阵M
move = cv2.warpAffine(img, M, (width, height))  # 平移映射
cv2.imshow('orginal', img)
cv2.imshow('move', move)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

项目实施4

import cv2

img = cv2.imread('flower.png')
height, width = img.shape[:2]  # 读取原图像的长和宽
M = cv2.getRotationMatrix2D((width / 2, height / 2), 45, 0.6)  # 以中心为原点,逆时针旋转45°,且缩小为原图的0.6倍,获得转移矩阵M
rotate = cv2.warpAffine(img, M, (width, height))  # 旋转映射
cv2.imshow('original', img)
cv2.imshow('rotation', rotate)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

项目实施5

import numpy as np

img = cv2.imread('flower.png')
height, width = img.shape[:2]  # 读取原图像的长和宽
x = 100  # 自定义转换矩阵M的x轴移动值
y = 200  # 自定义转换矩阵M的y轴移动值
M = np.float32([[1, 0, x], [0, 1, y]])  # 构造转换矩阵M
move = cv2.warpAffine(img, M, (width, height))  # 平移映射
cv2.imshow('orginal', img)
cv2.imshow('move', move)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿龙的代码在报错

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值