opencv学习笔记2

opencv学习笔记2

  • 图像处理基础

1.图像的基本表示方法
二值图像:
仅仅包含黑色和白色两周颜色的图像,将白色像素点处理为1,黑色像素点处理为0。
灰度图像
二值图像不够细腻
计算机将灰度处理为256个灰度级,用区间[0,255]来表示。255表示纯白色,0表示纯黑色。其余的数 值表示从黑到白之间不同级别的灰度。
彩色图像
不同的彩色空间表示方法虽然不同,但是各种彩色空间之间可以通过公式进行转换

2.像素处理
opencv最小的数据类型是无符号的8位数,因此opencv中并没有二值图像这种数据类型,二值图像是经过处理得到的,利用0表示黑色,255表示白色。
可以说二值图像为特殊的灰度图像。
可以使用img[0,0]访问图像的img的第0行和第0列的像素点
第一个索引表示行,第二个表示列

例子1

import cv2
import numpy as np
img = np.zeros((8,8),dtype=np.uint8)
print("img=\n",img)
cv2.imshow('one',img)
print("读取像素点img[0,3]=",img[0,3])
img[0,3] = 255
print('修改后的img= \n',img)
print("读取修改后的像素点img[0,3]=",img[0,3])
cv2.imshow('two',img)
cv2.waitKey()
cv2.destroyAllWindows()

例子2
读取灰度图像,并对其像素进行访问

import cv2
img = cv2.imread('src\lena.tiff',0)#0代表将图片调整为单通道灰度图像
cv2.imshow('before',img)
for i in range(10,100):
    for j in range(80,100):
        img[i,j] = 255
cv2.imshow('after',img)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
在这里插入图片描述
2彩色图像
RGB模式的图像在读入opencv中进行处理时,会按照行方向一次读取该RGB图像的B,G,R通道,并将像素点以行为单位存储在ndarry的列中。

可以使用表达式访问数组中的值
img[0,0,0]访问图像的img的B通道第0行,第0列
第一个索引表示行
第二个索引表示列
第三个索引表示颜色通道

import cv2
import numpy as np
img = np.zeros((300,300,3),dtype=np.uint8)
img[:,0:100,0]=255
img[:,100:200,1]=255
img[:,200:300,2]=255
print('img=\n',img)
cv2.imshow('demo',img)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述

3使用numpy.array访问像素
item(行,列)和itemset(索引值,新值)函数

import cv2
import numpy as np
img = np.random.randint(10,99,size=(5,5),dtype=np.uint8)
print("img = \n",img)
print("像素点img.item(3,2)为",img.item(3,2))
img.itemset((3,2),255)
print("修改后的img.item(3,2)",img.item(3,2))
cv2.imshow('demo',img)
cv2.waitKey()
cv2.destroyAllWindows()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值