OpenCV+python图像处理基础操作

1、读写图像(建议使用绝对路径)

import cv2 from cv2 
im = cv2.imread('C:/Users/admin/Desktop/test/1.jpg')
cv2.imwrite('C:/Users/admin/Desktop/test/2.jpg',im)

2、通过numpy生成8位单通道灰度图像,再通过OpenCV将灰度图转换为3通道彩色图像

import cv2 from cv2
import numpy
img = np.zeros((3,3),dtype=np.uint8)
img = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)

3、读取彩色图像并转换为灰度图

import cv2 from cv2
img = cv2.imread('C:/Users/admin/Desktop/test/1.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('C:/Users/admin/Desktop/test/3.jpg',img)

4、通过bytearray和numpy创建随机图像

import cv2 from cv2
import numpy
#生成大小为120000的随机byte数组
randomByteArray = bytearray(os.urandom(120000))
#将byte数组转换为numpy数组
flatNumpyArray = numpy.array(randomByteArray)
#把numpy数组转换为二维图像
grayImage = flatNumpyArray.reshape(300,400)
	#把numpy数组转换为3通道彩色图像
bgrImage = flatNumpyArray.reshape(200,200,3)
cv2.imwrite('C:/Users/admin/Desktop/test/3.jpg',bgrImage)

5、直接通过numpy直接生成随机图像

imageArray = numpy.random.randint(0,256,120000).reshape(200,200,3)

6、通过numpy.array中的item()访问图像像素值,位置和BGR索引

import cv2 from cv2
import numpy
image = cv2.imread('C:/Users/admin/Desktop/test/1.jpg')
print(image.item(100,100,2))

7、使用索引遍历图像,OpenCV中图像3个通道顺序为BGR,即blue,green,red。

#对图像进行遍历,并将B通道置零
import cv2 from cv2
import numpy
image[:,:,0]=0
cv2.imwrite('C:/Users/admin/Desktop/test/4.jpg',image)

8、将图像一部分区域拷贝到另一部分区域,两部分区域大小必须保持一致,且不能超过图像范围。

import cv2 from cv2
import numpy
#将图像纵轴0-50,横轴50-100区域拷贝到纵轴100-150,横轴100-150区域
image_block = image[0:50,50:100]
image[100:150,100:150] = image_block
cv2.imwrite('C:/Users/admin/Desktop/test/4.jpg',image)

9、获取图像属性,image.shape可以获取图像高、宽和通道数,返回一个长度为3的数组。

import cv2 from cv2 
im = cv2.imread('C:/Users/admin/Desktop/test/1.jpg')
#获取图像宽、高和通道数
arr = image.shape
Height = arr[0]
Width = arr[1]
print(Height)
print(Width)
#获取图像大小,size=高*宽*通道数
print(image.size)
#获取图像数据类型,一般为uint8
print(image.dtype)

10、通过OpenCV显示图像

import cv2 from cv2 
im = cv2.imread('C:/Users/admin/Desktop/test/1.jpg')
cv2.imshow('img',image)
cv2.waitKey()
cv2.destroyAllWindows()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TheMatrixs

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

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

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

打赏作者

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

抵扣说明:

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

余额充值