`
dream_people
  • 浏览: 60125 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何用python取图片轮廓

阅读更多

 

#coding:utf-8
from PIL import Image,ImageDraw

def isWhite(color):
    """
    查看像素是否为白色
    """
    """
    print color
    if type(color) == type(1):
        if color == 0:
            return False
        else:
            return True
    """
    if type(color) == type(1):
        light = color
    else:
        light = (color[0] + color[1] + color[2])/3

    if light < 150:
        return False

    return True

def getSharp(infile,outfile):
    """
    获取图片轮廓
    """
    img = Image.open(infile)
    data = img.getdata()

    outimg = Image.new("1",img.size)
    drawimg = ImageDraw.Draw(outimg)

    width,height = img.size
    cnt = 0
    for y in xrange(0,height):
        for x in xrange(0,width):
            drawimg.point((x,y),255)
            if isWhite(data[y * width + x]):
                continue
            if y == 0 or x == 0 or y == height - 1 or x == width - 1:
                continue
            if not isWhite(data[(y-1) * width + x]) and not isWhite(data[(y+1) * width +x]):
                if not isWhite(data[y * width + (x - 1)]) and not isWhite(data[y * width + x + 1]):
                    continue
            cnt += 1
            drawimg.point((x,y),0)

    outimg.save(outfile)
    print cnt

getSharp("076.jpg","2.bmp")
分享到:
评论

相关推荐

    python编写从图片中取点坐标,写入csv文件

    使用python编写的从图像中取点的程序。本程序设定是取得11行39列的文字坐标,如有其它需求可在本基础上改。通过鼠标左键单击获取文字位置,左键双击完成整个一行的取点。鼠标右击完成整个取点过程。

    作业二_图片聚类提取_图像处理python_

    在图像处理领域,图片聚类和特征提取是两个核心概念,尤其在Python环境中,它们有着广泛的应用。本项目“作业二_图片聚类提取_图像处理python_”着重于利用编程技术来分析和理解图像数据。 首先,我们要讨论的是...

    通过GDAL\OGR获取栅格矢量边界Python代码

    这两个库通常一起使用,因为它们都是GDAL项目的一部分,提供了广泛的数据读取、写入和处理功能。 标题提到的“通过GDAL\OGR获取栅格矢量边界”是一个常见的任务,这涉及到将栅格数据的边缘转换为矢量边界。这个过程...

    基于Python+Open CV的手势识别算法设计源代码材料

    采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中...选取图片中固定位置作为手势输入,用红线画出手势识别框,基于hsv的肤色检测,进行高斯滤波,找出轮廓,求出图像中手势的凹凸点,手指间角度求取。

    Python-使用opencv进行交互式抠图

    本项目"Python-使用opencv进行交互式抠图"旨在利用OpenCV和Qt库创建一个简单的交互式图像分割应用,让用户能够方便地从复杂背景中提取出感兴趣的对象。 首先,我们要了解OpenCV的基本概念。OpenCV是一个跨平台的...

    图像修复.py Python基于OpenCV的图像修复算法

    基本思路: 微分方程求解,**用邻近的像素替换那些坏标记,使其看起来像是邻居** 。 假设图像里的一个区域要修复。算法从这个区域的边界开始,逐渐地进入区域,把边界内的所有东西填充上。它取要修复的部分周围的...

    python获取点击的坐标画图形的方法

    在Python编程中,有时我们...无论是使用`turtle`库的`GraphWin`,还是使用`pygame`库,都可以实现这一目标,具体选择取决于项目需求和个人喜好。在实际应用中,可以结合这两个库的特点,创建更复杂的交互式图形应用。

    image2ascii:Python 实现的图片转 ASCII 码脚本

    一种常见的方法是使用边缘检测算法,如Sobel、Canny或Prewitt,找出图像中的轮廓,然后使用更突出的字符来表示这些边缘。 3. **图片像素化**:像素化是一种艺术风格,它使图像呈现出明显的像素状结构。在ASCII艺术...

    基于Opencv实现的图像纠偏

    在获取了图像的倾斜角度后,我们可以使用OpenCV的旋转函数`cv2.getRotationMatrix2D()`计算出旋转矩阵,再用`cv2.warpAffine()`函数对图像进行旋转校正。这两个函数结合可以实现精确的图像旋转,同时保持图像的原始...

    C# OpenCvSharp-提取文字区域.rar

    6. **边缘检测和轮廓查找**:为了找到文字所在的区域,可以使用OpenCV的边缘检测算法(如Canny、Sobel等)和轮廓查找功能。这些方法可以帮助我们识别出可能包含文字的图像部分。 7. **形态学操作**:形态学操作,如...

    大作业选题1

    在本实验中,我选择了 Python 作为开发语言,并使用 PyCharm + Anaconda 作为开发平台。Python 的语法简单、容易学习,且可以调用许多第三方库,包括 OpenCV 图像处理库。PyCharm 提供了语法补全、语法高亮等功能,...

    OpenCV图片漫画效果的实现示例

    在本篇【标题】"OpenCV图片漫画效果的实现示例"中,我们将探讨如何使用OpenCV库在Python中创建照片的漫画效果。【描述】提到,这个过程通过详细的示例代码进行了阐述,旨在帮助学习者或专业人士提升技能。本文将深入...

    图片预处理 灰度 二值化 直方图 滤波

    这些基本操作在"image_pretreatmet_1"文件中可能会有实际的示例和应用,例如,可以包含使用Python的OpenCV库进行图像预处理的代码示例,展示了如何实现这些操作。通过理解和掌握这些技术,开发者可以有效地处理和...

    易语言-易语言滑块位置 图像算法分析

    虽然易语言本身不支持复杂的机器学习库,但可以借助Python等其他语言的库,然后通过接口调用来增强算法。 6. **实验与验证**:最后,通过大量的测试图像对算法进行验证,不断调整参数,以提高正确率。作者提到的...

    实验报告5

    首先,通过求取图像的梯度得到轮廓,接着检测每个像素点的方向,并沿该方向扩展形成线条。实验中采用8个方向的卷积来确定每个点的方向,然后再次进行8方向卷积,将响应叠加,从而得到图像的笔画结构。其次,为了模拟...

    在OpenCV里实现条码区域识别的方法示例

    以下是一段示例代码,用Python3.7.4和OpenCV4.1版本实现上述功能。 ```python import numpy as np import cv2 from matplotlib import pyplot as plt # 读取图片 img = cv2.imread('barcode6.jpg') # 转换为灰度...

    数学工具常见问题集电子书

    使用`contourc`函数获取轮廓线数据。 ##### 24. 将三维网格图粘贴到Word中 先保存为图片格式,再导入Word文档。 ##### 25. 查看Matlab函数的源代码 对于某些内置函数,可以使用`edit`函数查看其源代码。 ##### ...

    Edge_detection:在此仓库中,我想弄清楚某些职位中最高要求的技能是什么

    边缘检测是计算机视觉领域中的一个基础且重要的技术,它用于识别图像中的边界,这些边界通常对应于物体的轮廓。在给定的标题和描述中,我们可以看出,这个仓库的作者正试图通过Python中的OpenCV库来探索两种常用的...

Global site tag (gtag.js) - Google Analytics