IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> opencv学习笔记(二) -> 正文阅读

[人工智能]opencv学习笔记(二)

绘制几何图形

‘’’
1’绘制直线

2‘绘制圆形

3’绘制矩形

4‘向图像中添加文字

5’效果展示

import cv2
import  numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img=np.zeros((512,512,3),np.uint8)
cv.line(img,(0,0),(511,511),(255,0,0),5)
cv.circle(img,(256,256),60,(0,0,255),-1)
cv.putText(img,"hello",(100,150),cv.FONT_HERSHEY_COMPLEX,5,(255,255,255),3)
plt.imshow(img[:,:,::-1])
plt.show()

‘’’

在这里插入图片描述

获取并修改图像中的像素点

像素点的改变在图片上比较难以观察,则输出了改变点的像素点

# 更改(100,100)处的像素值
img[100,100]=(0,0,255)
plt.imshow(img[:,:,::-1])
#返回这一点的像素值
print(img[100,100]) #[  0   0 255]



# ####获取像素的属性

print(img.shape)
    #(512, 512, 3)行、列、通道数
print(img.dtype)
    #uint8数据类型
print(img.size)
    #786432图像大小

#####通道的拆分与合并

# b,g,r=cv.split(img)

# img=cv.merge((b,g,r))

# ####色彩空间的改变
test=cv.imread("opencv_1.png")
print(plt.imshow(test))
print(plt.imshow(test[:,:,::-1]))
    #AxesImage(80,52.8;496x369.6)
    #AxesImage(80,52.8;496x369.6)


# cv.imshow('opencv_1.png',test)

# img=cv.imread("opencv_1.png",1)
# cv.imshow('opencv_1.png',img)#灰色图形

b,g,r=cv.split(test)
plt.imshow(b,cmap=plt.cm.gray)
img2=cv.merge((b,g,r))
plt.imshow(img[:,:,::-1])


cv.imshow('opencv_1.png',test)


算术操作

‘’’
可以将两幅图相加,或者通过numpy操作添加两幅图像,
两幅图像应该具有相同的大小和类型,或者第二个图像可以是标量值
opencv加法是饱和操作,numpy中是模运算

import cv2
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt

# 读取图像
img1=cv.imread('opencv_1.png');

img2=cv.imread("opencv_2.png");
plt.imshow(img1[:,:,::-1])
#加分运算
img3=cv.add(img2,img1)
img4=img1+img2
print(img3.shape)
img_200x200=cv.resize(img1,(200,200))
img_half=cv.resize(img1,(0,0),fx=0.5,fy=0.5,interpolation=cv.INTER_NEAREST)
cv.imshow("img_half",img_half)
cv.imshow("image",img_200x200)

# 图像显示
cv.imshow('img3',img3)

cv.imshow('img4',img4)


# fig,axes=plt.subplot(nrows=1,ncols=2,figsize=(10.8),dpi=100)
# axes[0].imshow(img3[:,:,::-1])


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图像的混合

img5=cv2.addWeighted(img1,0.7,img2,0.3,0)#表示所占权重不同
cv.imshow('img5',img5)
# cv.waitKey(0)


# ####图像缩放

photo1=cv.imread('opencv_2.png')
cv.imshow("123",photo1)

#缩放变换
# rows,cols=photo1.shape[:2]
res=cv.resize(photo1,(0,0),fx=0.5,fy=0.5)

cv.imshow("qw",res)

在这里插入图片描述
在这里插入图片描述

import numpy as np
import cv2

img = cv2.imread('test.png')

# 沿着横纵轴放大1.6倍,之后平移(-150,-240),最后沿原图大小截取,等效于剪裁并放大
M_crop_dog = np.array([
    [1.6, 0, -150],
    [0, 1.6, -240]
], dtype=np.float32)

# cv2.warpAffine(原始图像, 变换矩阵,变换后的图像大小)
img_dog = cv2.warpAffine(img, M_crop_dog,(400, 400))
cv2.imshow("img_dog", img_dog)


# x轴的剪切变换,逆时针旋转角度15°
theta=15*np.pi/180
M_shear=np.array([
    [1,np.tan(theta),0],
    [0,1,0]
],dtype=np.float32)

img_sheared=cv2.warpAffine(img,M_shear,(400,600))
cv2.imshow("img_sheared",img_sheared)

# 顺时针旋转,角度15°
M_rotate=np.array([
    [np.cos(theta),-np.sin(theta),0],
    [np.sin(theta),np.cos(theta),0]
],dtype=np.float32)

im_rotate=cv2.warpAffine(img,M_rotate,(400,600))
cv2.imshow("im_rotate",im_rotate)

# 旋转+缩放+旋转组合,可以通过SVD分解理解
M=np.array([
    [1,1.5,-400],
    [0.5,2,-100]
],dtype=np.float32)

img_transformed=cv2.warpAffine(img,M,(400,600))
cv2.imshow("img_transformed",img_transformed)

cv2.waitKey(0)

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:20:40  更:2021-11-22 12:21:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:35:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码