图像处理基础②

图像处理基础

像素处理

#图像读取
import cv2
img=cv2.imread('dog.jpg')
cv2.imshow('Dog',img) 
cv2.waitKey() 
cv2.destroyAllWindows()

在这里插入图片描述

img1=cv2.imread('dog.jpg',cv2.IMREAD_GRAYSCALE)
img2=cv2.imread('dog.jpg',cv2.IMREAD_COLOR)
cv2.imshow('Dog2',img1) 
cv2.waitKey(0) 
cv2.destroyAllWindows()

在这里插入图片描述

像素处理

1.二值图像(仅包含黑色和白色) 因图像比较简单,只有两种颜色,所以一个bit位0/1就可以表示
2.灰度图像
二值图像表示起来方便,但是由于只有两种颜色,所表示的图像不够细腻,而灰度图像采用更多数值来体现不同的颜色。
通常,计算机把灰度处理为256个灰度级,[0, 255],其中,0表示纯黑,255表示纯白正好用一个字节就可以表示(8位)

3.彩色图像
仅介绍常见的RGB色彩空间,其中存在R(red), G(Green), B(Blue)三个通道。每个值都在[0, 255]以内,用这三个色彩通道的组合表示颜色,故需要三个字节来表示。

4.Numpy库
numpy库中zeros()和ones()函数均可以生成一个数组

5.通道操作

1)通过索引拆分

B = img[: ,:, 0]
G = img[:, :, 1]
R = img[:, :, 2]

2)通过函数拆分
B, G, R = cv2.split(img)
3)通道合并
Img = cv2.merge([B , G ,R])

6.感兴趣区域ROI
Img[200:400, 200:400]

#访问图像,修改像素
img=cv2.imread("dog.jpg")
cv2.imshow("before",img)
print("访问img[0,0]=",img[0,0])
print("访问img[0,0,0]=",img[0,0,0])
print("访问img[0,0,1]=",img[0,0,1])
print("访问img[0,0,2]=",img[0,0,2])
print("访问img[50,0]=",img[50,0])
print("访问img[100,0]=",img[100,0])
#区域1
for i in range(0,50):
    for j in range(0,100):
        for k in range(0,3):
            img[i,j,k]=255       #白色
#区域2
for i in range(50,100):
    for j in range(0,100):
        img[i,j]=[128,128,128]  #灰色
#区域3            
for i in range(100,150):
    for j in range(0,100):
        img[i,j]=0          #黑色
cv2.imshow("after",img)
print("修改后img[0,0]=",img[0,0])
print("修改后img[0,0,0]=",img[0,0,0])
print("修改后img[0,0,1]=",img[0,0,1])
print("修改后img[0,0,2]=",img[0,0,2])
print("修改后img[50,0]=",img[50,0])
print("修改后img[100,0]=",img[100,0])
cv2.waitKey()
cv2.destroyAllWindows()
import numpy as np
imgrad=np.random.randint(0,256,size=[256,256,3],dtype=np.uint8)
cv2.imshow("demo",imgrad)
cv2.waitKey()
cv2.destroyAllWindows()
``

```python
img2=np.random.randint(0,256,size=[256,256,3],dtype=np.uint8)
for i in range(0,50):
    for j in range(0,100):
        for k in range(0,3):
            img2[i,j,k]=255  
cv2.imshow("before",imgrad)
cv2.imshow('after',img2)
cv2.waitKey()
cv2.destroyAllWindows()

通道拆分

#通道拆分-通过索引拆分
import cv2
dog=cv2.imread('dog.jpg')
cv2.imshow('dog',dog)
b=dog[:,:,0]
g=dog[:,:,1]
r=dog[:,:,2]
cv2.imshow("b",b)
cv2.imshow("g",g)
cv2.imshow("r",r)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
© Fu Xianjun. All Rights Reserved.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值