CV之FE:基于TF进行FE——去除异常(被损坏)图像 和单通道图像

简介: CV之FE:基于TF进行FE——去除异常(被损坏)图像 和单通道图像

输出结果

去除了异常(被损坏)图像 、单通道图像


设计思路

image.png


部分代码实现

import tensorflow as tf

from glob import glob

import os

……

def glob_all(dir_path):

   pic_list = glob(os.path.join(dir_path, '*.jpg'))

   inside = os.listdir(dir_path)

   for dir_name in inside:

       if os.path.isdir(os.path.join(dir_path, dir_name)):

           pic_list.extend(glob_all(os.path.join(dir_path, dir_name)))

   return pic_list

def parse_args():

   parser = argparse.ArgumentParser()

   parser.add_argument('-p', '--dir-path', default='data/')

   return parser.parse_args()

if __name__ == '__main__':

   #1、引入logging模块来记录信息,日志级别为INFO

   logging.basicConfig(level=logging.INFO)

   #2、引入argparse模块实现命令行操作

   args = parse_args()

   #3、递归取出dir_path下所有jpg文件,包括子文件夹的jpg文件

   all_pic_list = glob_all(args.dir_path)

   #4、for循环实现依次删除异常图片(包括损坏、非三通道)

   for i, img_path in enumerate(all_pic_list):

       try:

           ……

       except Exception:

           #检测到异常就删掉图片

           logging.warning('%s has broken. Delete it.' % img_path)

           #logging.error(traceback.format_exc())

           os.remove(img_path)


相关文章
|
计算机视觉
StretchDIBits 直接使用cv::Mat的数据有可能显示错误的问题
StretchDIBits 直接使用cv::Mat的数据有可能显示错误的问题
|
计算机视觉 容器
OpenCV-通道分离cv::split
OpenCV-通道分离cv::split
|
算法 数据可视化
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
2157 0
Halcon边缘检测和线条检测(3),文章含BLOB检测常用方法和shape_trans内接和外接算子的说明
|
6月前
|
计算机视觉
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
|
4月前
|
文字识别 数据可视化 BI
OCR 文字检测,可微的二值化(Differentiable Binarization --- DB)
OCR 文字检测,可微的二值化(Differentiable Binarization --- DB)
32 0
|
计算机视觉
OpenCV-扩充图像边界cv::copyMakeBorder
OpenCV-扩充图像边界cv::copyMakeBorder
175 0
|
计算机视觉
opencv 之图像的边界填充及一些数据计算
opencv 之图像的边界填充及一些数据计算
114 0
|
算法
【图像锐化】非锐化掩模 USM(Unsharpen Mask)与锐化掩模 SM(Sharpen Mask)
> 掩膜操作可以提高图像对比度,对比度提高可以增加图像感官度、锐化,让看起来有点模糊的图像更清晰。 > 原理:提取图像的高频分量,再用一个参数放大之后与原图叠加,这样就产生了一个增强了边缘的图像。 > 提取图像的高频分量的做法有两种: > 1.直接使用高通滤波器,得到高频分量。2.通过低通滤波器,再用原图减去低频就得到了高频信息。
541 0
【图像锐化】非锐化掩模 USM(Unsharpen Mask)与锐化掩模 SM(Sharpen Mask)
|
编解码 计算机视觉
CV13 图像分辨率操作(图像金字塔与resize()函数)
其中,高斯核卷积运算就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值(券种不同)经过加权平均后得到。常见的 33与 55 高斯核(CV9 2D卷积与图像滤波)
208 0
|
算法 编译器 Python
CV7 颜色追踪和图像阈值
因为在HSV中比在BGR颜色空间中更容易表示颜色,所以我们需要将BGR图像转换成HSV,用来提取一个有颜色的对象
156 0