删除小块区域

有些时候,我们只需要一些大块区域,那些零散的、小块的区域,我们就需要删除掉,

则可以使用morphology子模块的remove_small_objects函数。

让书和背景分离

对图片做了二值化,腐蚀,膨胀操作

使用remove_small_objects函数

import numpy
import numpy as np
import scipy.ndimage as ndi
from skimage import morphology
import matplotlib.pyplot as plt
import cv2
#编写一个函数来生成原始二值图像
def microstructure(img_path):# 将图像灰度化img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)# 让书和背景分离,这里我们将图片二值化retVal, image = cv2.threshold(img, 30, 230, cv2.THRESH_BINARY)# 开始进行腐蚀操作corrosion_img = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5))  ##腐蚀预处理,确定处理核的大小,矩阵操作img3 = cv2.erode(image, corrosion_img, iterations=10)  # 进行腐蚀操作kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))expand_pic = cv2.dilate(img3, kernel)pic_matrix = numpy.array(expand_pic)height, width = expand_pic.shapefor i in range(height):for j in range(width):pic_matrix[i, j] = 255 - img[i, j]return pic_matrix > pic_matrix.mean()img_path = './sample1.jpg'
data = microstructure(img_path) #生成测试图片
dst=morphology.remove_small_objects(data,min_size=220000)
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
ax1.imshow(data, plt.cm.gray, interpolation='nearest')ax2.imshow(dst,plt.cm.gray,interpolation='nearest')fig.tight_layout()
plt.show()

让书和背景分离/去除大区域中小的连通区域(python实现)相关推荐

  1. 用matlab给图片标记区域,MATLAB二值图像连通区域标记(两步法)

    posted on2012-12-06 16:24Dsp Tian 两步法中第二步是比较麻烦的,其中用到了不相交集合的一些理论,尤其是不相交集合森林,这里的find_set函数就是参考<算法导论 ...

  2. python 连通区域_二值图像连通区域标记

    原像素矩阵M为: 根据原像素矩阵M大小,初始化标记矩阵labelM: 算法流程 1.    首先要确定是标记8邻域连通还是4邻域连通,如果是8邻域连通,就用模板1,如果是4邻域连通,就用模板2.中间像 ...

  3. 保留已经定位区域MATLAB,基于HSV肤色提取与连通区域过滤的人脸定位算法(Matlab)...

    概述 本篇记录了利用基于HSV颜色模型的肤色提取与连通区域过滤实现图片的人脸定位,附带知识的介绍略烦多,附带Matlab相关程序代码. 一.预备知识 图像预处理 1.1 灰度化 在RGB模型中,如果R ...

  4. opencv(十三)-快速连通区域分析

    索引目录 1.连通区域标记算法 2.剔除小连通区域 参考 1.连通区域标记算法 连接区域标记算法(connected component labeling algorithm)是图像分析中最常用的算法 ...

  5. OpenCV编程案例:使用轮廓函数检测连通区域

    转自:http://www.aiseminar.cn/bbs/thread-617-1-1.html 此案例位于CXCORE中cvDrawContours函数介绍部分给出.此程序首先载入一个二值图像文 ...

  6. Java+opencv3.2.0之删除最小连通区域

    吐槽一下,在网上查了半天opencv3关于删除最小连通区域的方法,结果还是没找到,就自己写了一个,效果还可以,就发出来和大家分享一下. 思路: 1.遍历所有像素点 2.每遍历到一个黑点就去判断是否为连 ...

  7. 活动作品计算机视觉课程第七讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(中集):OpenCV4图像分割提取图像任意感兴趣区域

    计算机视觉课程第七讲-带你简单快速学习2021年春晚背后刘德华与背景分离切换到另一场景视觉算法(中集):OpenCV4图像分割提取图像任意感兴趣区域 本专栏将会带大家学习 <计算机视觉与图形学& ...

  8. 【OCR】图像预处理-文字背景分离方法

    1. 摘要 在OCR处理文档时,经常会遇到自然拍照场景中由于光照强度不一.拍摄角度不同.相机成像元件差异,因此会导致拍摄的图片与扫描文档存在较大区别.为使文档文字内容更加鲜明,便于后续特征提取,本文目 ...

  9. ae抠像插件_AE抠像背景残留去除

    大家在使用AE制作动画的时候是否发现一些绿幕背景无法清除干净?别担心,这里为大家推荐一款Rescue Matte Cleaner插件,这是一款AE抠像背景残留去除插件,能够帮助大家清理掉由不良的照明和 ...

最新文章

  1. Linux下使用ping出现destination is unreachable的问题可能性
  2. 【Python】随机划分数据集并生成VOC格式列表
  3. 给大家几个不花钱看书的办法【人人都是产品经理】
  4. iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
  5. Linux包管理速查表
  6. Spring Boot和JSP
  7. OO第二单元作业总结
  8. 手机相机自动识别语音提示
  9. 基于TableStore的物联网元数据管理
  10. oracle如何添加undo,ORACLE RAC 11G 添加以及删除UNDO表空间
  11. 01-国内开源镜像站汇总
  12. 设计模式---模板模式(C++实现)
  13. Cubieboard通过aria2和minidlna来架设家庭媒体中心
  14. 前端封装接口弹出错误_Java:SpringBoot写后端接口,看这一篇就够了
  15. ajax 获取访问者ip,jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
  16. C++ Primer 5th Answers
  17. 颜色偏差裙子测试软件,蓝黑/白金裙子告诉你视觉误差到底有多大?——一条裙子引发的全民纠结...
  18. Activity启动过程源码分析
  19. 【大数据入门核心技术-Tez】(二)Tez安装
  20. 数字孪生教程大全之 我们如何构建数字孪生?数字孪生的五个级别都是什么

热门文章

  1. BSidesSF 2019 部分writeup
  2. dataFrame的多条件筛选
  3. 使用Python进行图像处理—图像分割的无监督学习
  4. 过宇宙元年,ICT技术向产业扎根
  5. 台式计算机屏幕扩展,浅谈修图电脑配置(台式/显示器篇)
  6. 乐高大颗粒作品9:水井的搭建
  7. 如何计算主力持仓成本?主力持仓成本的核算方法!
  8. thinkphp6实现redis连接池_详解thinkphp+redis+队列的实现代码
  9. swfdec android,swf 格式Flash 动画播放器在Android上的实现
  10. 计算机无法找到输入设备,win7系统声音无法找到输入设备麦克风不能用的解决办法...