2019年3月23日 星期六

s1051766 的 作業2

首先,通过文档我们可以整理出以下思路



  1. 以RGB色彩空间读入图片
  2. 将图片转为HIS或YUV、YCbCr等色彩空间
  3. 以SobelOperators侦测图像边缘
  4. 对亮度进行处理
  5. 转为RGB色彩空间
那么接下来只需要一步步完成即可

  • 以cv2.imread()读入图片  (有的文章提到此时读入的图片为BGR色彩空间?)
  • 通过cv2.cvtColor将图片转为YCbCr色彩空间
  • 通过SobelOperators侦测图像边缘,这里通过搜索找到cv2.Sobel()方法,具体使用方法可以参考官方文档Opencv官方文档
  • 将数据格式转回到uint8,这里官方文档也提到一句话in the case of 8-bit input images it will result in truncated derivatives ,即通过Sobel()函数之后可能会产生负数或超过255的数,而uint8为无符号数。这里可以一步步输出image.dtype查看数据格式,第一步读取图片时为uint8,而通过Sobel()方法时数据格式就会发生改变(根据你所设定的depth参数),所使用函数为cv2.convertScaleAbs()
  • 对亮度进行处理
  • 通过cv2.cvtColor将图片转为RGB色彩空间
图片示意图如下


沒有留言:

張貼留言