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.访问和修改像素值

有两种方法,代码示例:

import numpy as np
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac.jpg')
#方法一
print(img[100,100])
print(img[100,100,2])
img[100,100,2] = 150
print(img[100,100,2])
#方法二
print(img.item(100,100,2))
img.itemset((100,100,2),255)
print(img.item(100,100,2))

2.访问图像属性

有三种属性,代码示例:

import numpy as np
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac.jpg')
print(img.shape)   #图像形状(行,列,通道数(若为灰度图像则无这一项))
print(img.size)    #图像像素总数
print(img.dtype)   #图像数据类型

3.图像的分割及复制

将图像的一部分进行分割,并将其复制到指定的位置,代码示例:

import numpy as np
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac.jpg')
half = img[0:1080, 0:960]
img[0:1080, 960:1920] = half
cv.imwrite('change.jpg', img)

4.拆分及合并图像通道

将BGR图像的B、G、R三通道进行分割存储,再合并成RGB图像格式,代码示例:

import numpy as np
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac.jpg')
#方法一
b, g ,r = cv.split(img)
img2 = cv.merge([r, g, b])
#方法二
b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
img3 = cv.merge([r, g, b])

5.为图像添加边框

主要使用cv.copyMakeBorder()函数,此函数有以下参数:
①输入图像
②上边框宽度
③下边框宽度
④左边框宽度
⑤右边框宽度
⑥边框类型,包括5种:

  • cv.BORDER_CONSTANT
    添加恒定的彩色边框。该值应作为下一个参数给出。
  • cv.BORDER_REFLECT
    边框将是边框元素的镜像,如下所示: fedcba | abcdefgh |
    hgfedcb
  • cv.BORDER_REFLECT_101或cv.BORDER_DEFAULT
    例如: gfedcb | abcdefgh | gfedcba
  • cv.BORDER_REPLICATE
    最后一个元素被复制,例如: aaaaaa | abcdefgh | hhhhhhh
  • cv.BORDER_WRAP
    例如: cdefgh | abcdefgh | abcdefg

⑦value -边框的颜色(边框类型为cv.BORDER_CONSTANT)

代码示例:

import numpy as np
import cv2 as cv
img = cv.imread('C:\\Users\\dell\\Desktop\\prac files\\prac.jpg')
img1 = cv.cvtColor(img, cv.COLOR_BGR2RGB)
replicate = cv.copyMakeBorder(img1, 100, 100, 100, 100, cv.BORDER_REPLICATE)
reflect = cv.copyMakeBorder(img1, 100, 100, 100, 100, cv.BORDER_REFLECT)
reflect101 = cv.copyMakeBorder(img1, 100, 100, 100, 100,cv.BORDER_REFLECT_101)
wrap = cv.copyMakeBorder(img1, 100, 100, 100, 100, cv.BORDER_WRAP)
constant = cv.copyMakeBorder(img1, 100, 100, 100, 100, cv.BORDER_CONSTANT,(255,0,0))
plt.subplot(2, 3, 1)
plt.title('ORIGINAL')
plt.imshow(img1)
plt.xticks([]), plt.yticks([])

plt.subplot(2, 3, 2)
plt.title('REPLICATE')
plt.imshow(replicate)
plt.xticks([]), plt.yticks([])

plt.subplot(2, 3, 3)
plt.title('REFLECT')
plt.imshow(reflect)
plt.xticks([]), plt.yticks([])

plt.subplot(2, 3, 4)
plt.title('REFLECT_101')
plt.imshow(reflect101)
plt.xticks([]), plt.yticks([])

plt.subplot(2, 3, 5)
plt.title('WRAP')
plt.imshow(wrap)
plt.xticks([]), plt.yticks([])

plt.subplot(2, 3, 6)
plt.title('CONSTANT')
plt.imshow(constant)
plt.xticks([]), plt.yticks([])

plt.show()
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 12:42:30  更:2021-08-18 12:43:22 
 
开发: 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 19:46:07-

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