Python&OpenCV - 随机生成图像 与 图像的转维(reshape)

随机生成图像 与 图像的转维(reshape)

 

转自: http://blog.csdn.net/caroline_wendy/article/details/17062379

 

OpenCV可以支持Python版本;

通过Python的标准库, os.urandom(), 随机生成uchar数, 然后传递给OpenCV的矩阵;

通过reshape()函数, 把1维变成2维(灰度图像), 把1维变成3维(彩色图像);

注意: "-*- coding: utf-8 -*-"可以UTF-8编码, 可以使用中文注释; 输出灰度和彩色;

代码如下:

[python]  view plain  copy
  1. # -*- coding: utf-8 -*-  
  2.   
  3. #=================  
  4. #File: PyOpenCV.py  
  5. #Author: Wendy  
  6. #=================  
  7.   
  8. import cv2  
  9. import numpy  
  10. import os  
  11.   
  12. #随机生成120000=300*400=100*400*3  
  13. randomByteArray = bytearray(os.urandom(120000))  
  14. #把数组赋值给OpenCV类型矩阵  
  15. flatNumpyArray = numpy.array(randomByteArray)  
  16.   
  17. #矩阵变维, 1维变维2维(灰度), 1维变为3维(彩色)  
  18. grayImage = flatNumpyArray.reshape(300400)  
  19. bgrImage = flatNumpyArray.reshape(1004003)  
  20.   
  21. #显示  
  22. cv2.imshow("GRAY", grayImage)  
  23. cv2.imshow("BGR", bgrImage)  
  24. cv2.waitKey(0)  


输出:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python进行机器视觉图像去噪,可以使用OpenCV和NumPy库。以下是一些示例代码来去除图像中的高斯噪声、添加高斯噪声和添加椒盐噪声。 1. 去除高斯噪声的示例代码: ```python import cv2 import numpy as np # 读取带噪声的图像 img = cv2.imread('noisy_image.jpg') # 去除高斯噪声 denoised_img = cv2.GaussianBlur(img, (5, 5), 0) # 显示去噪后的图像 cv2.imshow('denoised image', denoised_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码使用了`cv2.GaussianBlur`函数来对图像进行高斯模糊处理,从而去除高斯噪声。 2. 添加高斯噪声的示例代码: ```python import cv2 import numpy as np # 读取图像 img = cv2.imread('input.jpg') # 添加高斯噪声 mean = 0 var = 0.1 sigma = var ** 0.5 gaussian = np.random.normal(mean, sigma, img.shape) gaussian = gaussian.reshape(img.shape) noisy_img = img + gaussian # 将像素值限制在 0 和 255 之间 noisy_img = np.clip(noisy_img, 0, 255) # 显示带噪声的图像 cv2.imshow('noisy image', noisy_img.astype(np.uint8)) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码使用了`np.random.normal`函数生成高斯噪声,并将其添加到原始图像上。 3. 添加椒盐噪声的示例代码: ```python import cv2 import numpy as np # 读取图像 img = cv2.imread('input.jpg') # 添加椒盐噪声 p = 0.05 # 像素点被替换为椒盐噪声的概率 salt_vs_pepper = 0.5 # 椒盐噪声的比例 num_salt = np.ceil(p * img.size * salt_vs_pepper) num_pepper = np.ceil(p * img.size * (1.0 - salt_vs_pepper)) coords = [np.random.randint(0, i - 1, int(num_salt)) for i in img.shape] img[coords[0], coords[1], :] = 255 coords = [np.random.randint(0, i - 1, int(num_pepper)) for i in img.shape] img[coords[0], coords[1], :] = 0 # 显示带噪声的图像 cv2.imshow('noisy image', img.astype(np.uint8)) cv2.imwrite('noise_pic.jpg', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码使用了随机生成的坐标来将像素点替换为椒盐噪声,从而添加椒盐噪声到原始图像中。 请注意,以上示例代码中的图像文件路径需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值