其他分享
首页 > 其他分享> > 异常数据生成开发说明书

异常数据生成开发说明书

作者:互联网

im = cv2.imdecode(np.fromfile(‘c:\测试\1.jpg’, dtype=np.uint8), cv2.IMREAD_UNCHANGED) # The image path has chinese character.
cv2.imencode(’.jpg’, im)[1].tofile(‘C:\测试\你好.jpg’) # The image path has chinese character.
cv2.imencode(), params: ext, img, buf, params(the same with imwrite())
当路径中含有中文时, 这样读取图像数据. 在Windows中这样读取数据.

1. 生成条纹图像.

比较常见的花屏如条纹花屏, 块花屏等.
一个比较简单的想法就是: 对图像矩阵的某些行, 某些列, 或者某一块进行操作. 将行, 列, 块的元素进行替换即可. 替换成随机的颜色或者指定的颜色都可以.

条纹图像, 是整张图像都是横条纹或竖条纹, 颜色可以随机选择.

2. 图像滤波.

对于2D图像可以进行低通或者高通滤波操作, 低通滤波(LPF)有利于去噪, 模糊图像; 高通滤波(HPF)有利于找到图像边界.
低筒滤波器如: 均值滤波, 中值滤波, 高斯滤波, 双边滤波. 为使图像变得模糊, 可以采用高斯滤波.

3. 颜色空间.

RGB: 红绿蓝
HSI: 色相(Hue), 饱和度(Saturation), 亮度(Intensity)
HSL: hue(色相), saturation(饱和度), lightness(亮度)
HSV: hue, saturation, value(色调)
YCrCb: Y是亮度(Luminance), Cb, Cr是色差(chrominance), Cb是蓝色色差 , Cr是红色色差

4. 图像失真.

图像失真, 图像晃动模仿的是PS滤镜中的碎片特效, 因此方法是将图像在上, 下, 左, 右四个方向做平移, 然后将四个方向的平移的图像叠加起来做平均即可.
opencv: BGR; Skimage: RGB; PIL: RGB.
如果图像是用opencv读取的, 而现实或者保存时, 采用的是其他的, 但是没有将BGR转换为RGB, 那么将会出错. 图像偏蓝. 这是不同的库的图像格式问题.
另外, 在做失真/晃动(滤镜的碎片效果, 关键词重影)时, ndarray必须转换成float型的.

5. 抖动效果.

  1. 左右抖动效果: 在相邻的几帧中, 随机选择某一帧进行显示或保存. 即t时刻随机显示t+1/t+2/t+3等时刻的图像即可.
  2. 上下抖动效果. 实现不了, 上下的内容无法预测!!!

6. 花屏效果比较难做. 1) 利用cv2.imwrite()保存图像时实现即可.

7. 黑帧图像: 在很黑的夜晚拍摄的图像.

(1) 仅仅改变图像的亮度并不能实现该效果. 因为, 仅仅改变图像的亮度会使得整个图像的亮度都变暗. 这和要求不符. 将像素值变小, 全部色彩变暗; 将像素值变大, 全部色彩变亮. (2) 图像渐晕效果实现黑帧, level越大, 整体亮度变淡; level越小, 局部越亮, 周围越暗.

8. 图像遮挡.

(1) 图像遮挡, 不能采用图像融合的方法实现, 效果太差. (2) 图像拼接和图像遮挡也有区别. 并且在做图像拼接时, 需要两张图像相似才行, 即在提取特征点时, 有相似的地方. (3)

9. 将视频打包时, 使用pyinstaller进行打包.

对于异常数据生成客户端来说, 为了兼容自己的电脑和其他人员的电脑, 打包方式为: pyinstaller *.py, 不使用参数-F. 并且打包完会在dist文件夹下有cv2文件夹, 其中可能缺少ffmpeg.dll, 将ffmpeg.dll拷贝到cv2目录下即可.

标签:滤波,cv2,亮度,生成,RGB,说明书,图像,异常,花屏
来源: https://blog.csdn.net/qq_20965753/article/details/89224706