#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编写的从图像中取点的程序。本程序设定是取得11行39列的文字坐标,如有其它需求可在本基础上改。通过鼠标左键单击获取文字位置,左键双击完成整个一行的取点。鼠标右击完成整个取点过程。
在图像处理领域,图片聚类和特征提取是两个核心概念,尤其在Python环境中,它们有着广泛的应用。本项目“作业二_图片聚类提取_图像处理python_”着重于利用编程技术来分析和理解图像数据。 首先,我们要讨论的是...
这两个库通常一起使用,因为它们都是GDAL项目的一部分,提供了广泛的数据读取、写入和处理功能。 标题提到的“通过GDAL\OGR获取栅格矢量边界”是一个常见的任务,这涉及到将栅格数据的边缘转换为矢量边界。这个过程...
采用Python的集成开发环境Pycharm进行本次课程设计,在Pycharm中...选取图片中固定位置作为手势输入,用红线画出手势识别框,基于hsv的肤色检测,进行高斯滤波,找出轮廓,求出图像中手势的凹凸点,手指间角度求取。
本项目"Python-使用opencv进行交互式抠图"旨在利用OpenCV和Qt库创建一个简单的交互式图像分割应用,让用户能够方便地从复杂背景中提取出感兴趣的对象。 首先,我们要了解OpenCV的基本概念。OpenCV是一个跨平台的...
基本思路: 微分方程求解,**用邻近的像素替换那些坏标记,使其看起来像是邻居** 。 假设图像里的一个区域要修复。算法从这个区域的边界开始,逐渐地进入区域,把边界内的所有东西填充上。它取要修复的部分周围的...
在Python编程中,有时我们...无论是使用`turtle`库的`GraphWin`,还是使用`pygame`库,都可以实现这一目标,具体选择取决于项目需求和个人喜好。在实际应用中,可以结合这两个库的特点,创建更复杂的交互式图形应用。
一种常见的方法是使用边缘检测算法,如Sobel、Canny或Prewitt,找出图像中的轮廓,然后使用更突出的字符来表示这些边缘。 3. **图片像素化**:像素化是一种艺术风格,它使图像呈现出明显的像素状结构。在ASCII艺术...
在获取了图像的倾斜角度后,我们可以使用OpenCV的旋转函数`cv2.getRotationMatrix2D()`计算出旋转矩阵,再用`cv2.warpAffine()`函数对图像进行旋转校正。这两个函数结合可以实现精确的图像旋转,同时保持图像的原始...
6. **边缘检测和轮廓查找**:为了找到文字所在的区域,可以使用OpenCV的边缘检测算法(如Canny、Sobel等)和轮廓查找功能。这些方法可以帮助我们识别出可能包含文字的图像部分。 7. **形态学操作**:形态学操作,如...
在本实验中,我选择了 Python 作为开发语言,并使用 PyCharm + Anaconda 作为开发平台。Python 的语法简单、容易学习,且可以调用许多第三方库,包括 OpenCV 图像处理库。PyCharm 提供了语法补全、语法高亮等功能,...
在本篇【标题】"OpenCV图片漫画效果的实现示例"中,我们将探讨如何使用OpenCV库在Python中创建照片的漫画效果。【描述】提到,这个过程通过详细的示例代码进行了阐述,旨在帮助学习者或专业人士提升技能。本文将深入...
这些基本操作在"image_pretreatmet_1"文件中可能会有实际的示例和应用,例如,可以包含使用Python的OpenCV库进行图像预处理的代码示例,展示了如何实现这些操作。通过理解和掌握这些技术,开发者可以有效地处理和...
虽然易语言本身不支持复杂的机器学习库,但可以借助Python等其他语言的库,然后通过接口调用来增强算法。 6. **实验与验证**:最后,通过大量的测试图像对算法进行验证,不断调整参数,以提高正确率。作者提到的...
首先,通过求取图像的梯度得到轮廓,接着检测每个像素点的方向,并沿该方向扩展形成线条。实验中采用8个方向的卷积来确定每个点的方向,然后再次进行8方向卷积,将响应叠加,从而得到图像的笔画结构。其次,为了模拟...
以下是一段示例代码,用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`函数查看其源代码。 ##### ...
边缘检测是计算机视觉领域中的一个基础且重要的技术,它用于识别图像中的边界,这些边界通常对应于物体的轮廓。在给定的标题和描述中,我们可以看出,这个仓库的作者正试图通过Python中的OpenCV库来探索两种常用的...