干货满满的 Python 实战项目,点赞收藏
作者 | 俊欣
来源 | 关于数据分析与可视化
今天小编来给大家介绍3个干货满满的计算机视觉方向的Python
实战项目,主要用到的库有
opencv-python
numpy
pillow
要是大家所配置的环境当中没有这几个模块的话,就需要先用pip
命令下载安装
pip install opencv-python numpy pillow
边缘检测
边缘检测的基本思想就是简化图像信息,使用边缘线代表图像所携带信息,而这次我们要用到的则是Canny
边缘检测算子,在Opencv
当中需要调用的是cv.canny()
方法即可,代码如下
import cv2 as cv
import matplotlib.pyplot as pltimg = cv.imread('导入图像的路径',0)
edges = cv.Canny(img,100,200)
plt.subplot(121)
plt.imshow(img, cmap='gray')
.........
plt.show()
output
将照片变成素描风格
我们最终要实现的目的在于将照片变成素描风格,大致的逻辑在于首先需要将图片变成灰色图像然后反转,在反转之后进行模糊化处理,代码如下
import cv2
img = cv2.imread("导入照片的路径")## 将照片灰度化处理
gray_image = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
## 将灰度化的照片反转处理
inverted_gray_image = 255-gray_image
## 将反转的照片模糊化处理
blurred_inverted_gray_image = cv2.GaussianBlur(inverted_gray_image, (19,19),0)
## 再一次的进行反转
inverted_blurred_image = 255-blurred_inverted_gray_image
### 颜色减淡混合处理
sketck = cv2.divide(gray_image, inverted_blurred_image,scale= 256.0)cv2.imshow("Original Image",img)
cv2.imshow("Pencil Sketch", sketck)
cv2.waitKey(0)
output
判断形状
现在我们需要来判断图片当中图形的轮廓,而识别轮廓的算法在opencv
模块当中是有内置的,代码如下
import cv2
import numpy as np
from matplotlib import pyplot as plt# 导入照片
img = cv2.imread('3.png')
# 将照片灰度化处理,当然要是您的照片已经是黑白的,就可以跳过这一步
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# setting threshold of the gray image
_, threshold = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)# 识别轮廓的方法
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)i = 0
for contour in contours:# cv2.approxPloyDP() function to approximate the shapeapprox = cv2.approxPolyDP(contour, 0.01 * cv2.arcLength(contour, True), True)# 找到图片的中心点M = cv2.moments(contour)if M['m00'] != 0.0:x = int(M['m10'] / M['m00'])y = int(M['m01'] / M['m00'])# 将轮廓的名字放在各个图形的中央if len(approx) == 3:cv2.putText(img, 'Triangle', (x, y),cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 0), 2)elif len(approx) == 4:.......elif len(approx) == 5:......elif len(approx) == 6:......else:......# 将最后的图形呈现出来
cv2.imshow('shapes', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
output
往
期
回
顾
资讯
谷歌使出禁用2G大招
资讯
大型模型语言能够理解吗?
技术
Python写了一个网页版的P图软件
技术
11款可替代top命令的工具!
分享
点收藏
点点赞
点在看
相关文章:

php安装完成以后要复制php.ini文件
直接 #find / -name "php.ini" 找不到,是因为安装php的时候没有复制配置文件 php版本变化以后ini文件名有变 php.ini-production对应于php.ini-recommended php.ini-development对应于php.ini-dist二者差异? 由于版本更新,这些文件有了新的命…

MASQUERADE --random 端口不随机
iptables -t nat -A POSTROUTING -o xxxx -j MASQUERADE --random发现源端口并不是随机的而是有规律递增,经过Google的搜索查找,发现新的版本有--random-full 这个参数iptables -t nat -A POSTROUTING -o xxxx -j MASQUERADE --random-full经过测试端口随…

PHP安装与使用VLD查看opcode代码【PHP安装第三方扩展的方法】
需要分析PHP代码的性能,或者说实现同样功能的代码到底哪个更好呢?或者说想知道底层的实现可以使用VLD查看opcode 下载与安装VLD # wget http://pecl.php.net/get/vld-0.11.2.tgz# tar zxvf vld-0.11.2.tgz# cd ./vld-0.11.2# /usr/local/php/bin/phpize …

实现数组字符串翻转的两种方法
//第一种方法:递归法 #include <stdio.h> int reverse_string(char * string) {if (*string ! \0){reverse_string(string1);printf("%c", *string);} } int main() {char *string "abcde";printf("源字符串为:%s\n&quo…

详解 Python 如何将爬取到的数据分别存储到 txt、excel、mysql 中!
作者 | 黄伟呢来源 | 数据分析与统计学之美1. 页面分析我爬取的页面是腾讯体育,链接如下:https://nba.stats.qq.com/player/list.htm观察上图:左边展示的分别是NBA的30支球队,右边就是每只球队对应球员的详细信息。此时思路就很清…

蹭了BCH热度,还来诋毁BCH,这些跳梁小丑到底在玩什么阴谋?
最近一些分叉币为了博眼球简直什么招数都用。有的某分叉币对主链暂停10天的问题闭口不提,靠微博撕逼来吸引关注,有的则自导自演了一出51%***的大戏。而奇怪的是当别人开始谈论他们这些错误的时候,他们却把矛头指向了火热的比特币现金。这些跳…

比 GPT-3 更擅长理解用户意图,OpenAI发布 InstructGPT
作者 | 青苹果来源 | 数据实战派近日,OpenAI 发布了一项令人瞩目的研究—— InstructGPT。在这项研究中,相比 GPT-3 而言,OpenAI 采用对齐研究(alignment research),训练出更真实、更无害,而且更…

The C10K problem原文翻译
原文地址:http://www.cnblogs.com/fll/archive/2008/05/17/1201540.htmlThe C10K problem如今的web服务器需要同时处理一万个以上的客户端了,难道不是吗?毕竟如今的网络是个big place了。 现在的计算机也很强大了,你只需要花大概$…

mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE …

spring data jpa 详解
2019独角兽企业重金招聘Python工程师标准>>> 本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整…

php使用curl可以get 模拟post
本机windows测试需要打开curl php.ini extensionphp_curl.dll重启apacheinclude (Curl.php);$cunew QP_Curl_Curl();$s$cu->get(http://www.baidu.com);echo $s;Curl.php可以使用http://www.myquickphp.com/的框架中的组件Curl.php/*** CURL 工具* * category QuickPHP(II…

为什么使用模块?
# -*- coding: utf-8 -*- #python 27 #xiaodeng #模块01#每个文件都是一个模块,并且模块导入之后就可以导入模块定义的变量名。#为什么使用模块? #命名空间提供了将部件组织为系统的简单的方法。 #在一个模块文件的顶层定义的所有变量名都成了被导入的模…

报告!插件×元宵来啦
欢欢喜喜 闹元宵迈过新年,开工大吉,元宵节的脚步悄悄靠近,在大家努力搬砖得同时,CSDN插件带着它的元宵活动走来啦~元宵喜乐汇虎年的第一个月圆之夜,除了吃汤圆还能干啥呢?当然是猜灯谜咯!CSDN插…

%f%g%e区别
%f 表示按浮点数的格式输出 %e 表示按指数形式的浮点数的格式输出 %g 表示自动选择合适的表示法输出,可以去小数末尾多余的0转载于:https://www.cnblogs.com/holyday/p/9111777.html

Cassandra安装测试
说明,本人成功安装过程记录 只要看解压目录的readme.txt即可,其他网上教程由于版本不对会执行报错,例如遇到编码问题 #wget http://www.apache.org/dyn/closer.cgi?path/cassandra/1.0.3/apache-cassandra-1.0.3-bin.tar.gz #tar -zxvf a…

如何使用 Python 隐藏图像中的数据
作者 | 小白来源 | 小白学视觉隐写术是在任何文件中隐藏秘密数据的艺术。秘密数据可以是任何格式的数据,如文本甚至文件。简而言之,隐写术的主要目的是隐藏任何文件(通常是图像、音频或视频)中的预期信息,而不实际改变…

php 的 危 险 参 数
hpinfo() 功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec()。 危险等级:高 exec() 功能描述:允许执行一个外部…

开源 | 蚂蚁金服分布式中间件开源第二弹:丰富微服务架构体系
小蚂蚁说: 数据、消息、微服务是蚂蚁金服自主研发的金融级分布式中间件 SOFA (Scalable Open Financial Architecture)的三大方向。 一个多月前,蚂蚁金服开源了 SOFABoot 和 SOFARPC 两个组件,受到了社区的热烈欢迎&am…

System.Web.Caching.Cache类 缓存 各种缓存依赖
原文:System.Web.Caching.Cache类 缓存 各种缓存依赖Cache类,是一个用于缓存常用信息的类。HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例。 一、属性 属性说明Count获取存储在缓存中的项数。EffectivePercentagePhysicalMemoryLimit获取在 ASP.NE…

Python 可视化近 90 天的百度搜索指数 + 词云图
作者 | 叶庭云来源 | AI庭云君一、简介 在实际业务中我们可能会使用爬虫根据关键词获取百度搜索指数历史数据,然后进行对应的数据分析。百度指数,体验大数据之美。但要获取百度指数相关的数据,困难如下:不是静态网页,并…

php常用比较函数区别表
php常用比较函数区别表 表达式 empty() is_null() isset() if($x) $x "" TRUE FALSE TRUE FALSE $x null TRUE TRUE FALSE FALSE $x is undefined TRUE TRUE FALSE FALSE(报E_NOTICE错) $x array() TRUE FALSE TRUE FALSE $x false TRUE FALSE TRUE FALSE $x 0 …

实战分享:淘宝Web 3D应用与游戏开发
大家下午好!我们今天讲个比较有意思的话题,这个话题在业界被谈及得比较少。大家在座有做过移动端开发的同学吗?请举个手,人还挺多的。那做过3D应用的同学请举个手,有用过Threejs的请举个手,做过游戏的呢..人…

常见NoSQL系统使用场景分析
•Cassandra •特性:分布式与复制的权衡\根据列和键范围进行查询\BigTable类似的功能:列,列族\写比读快很多 •最佳适用:写操作较多,读比较少的时候。如果你的系统都是基于Java的时候。 •应用场景:银行&am…

再一次输给了AI,弯道急速超车、登上 Nature 封面
作者 | 学术头条来源 | 学术头条人工智能(AI)的很多潜在应用,涉及与人类交互时做出更优化的实时决策,而竞技或者博弈类游戏,便是最佳的展示舞台。近日,发表在《自然》杂志上的封面文章报告称,AI…

maven 多环境打包
2019独角兽企业重金招聘Python工程师标准>>> 1.在项目的pom中添加 <build><resources><!-- Resource Filter --><resource><directory>src/main/resources</directory><filtering>true</filtering></resource&g…

Sass函数:Sass Maps的函数-map-has-key($map,$key)
map-has-key($map,$key) 函数将返回一个布尔值。当 $map 中有这个 $key,则函数返回 true,否则返回 false。 前面的示例,当 $key 不在 $map 中时,使用 map-get($map,$key) 函数将返回一个 null 值。但对于开发人员,并看…
Memcache内存分配策略
转自:http://tank.blogs.tkiicpp.com/2010/12/14/memcache%e5%86%85%e5%ad%98%e5%88%86%e9%85%8d%e7%ad%96%e7%95%a5/ 一、Memcache内存分配机制关于这个机制网上有很多解释的,我个人的总结如下。 Page为内存分配的最小单位。 Memcached的内存分配以page…

论排列组合,持续更新
今天刚好碰到了一个排列组合问题,因为之前对这方面的学习比较少,所以用的非常蠢的方法做了四位数中取三位的排列,写的程序太有局限性,源码如下#define _CRT_SECURE_NO_WORNINGS 1#include<stdio.h>#include<stdlib.h>…

Python 中少为人知的 10 个安全陷阱
作者:Dennis Brinkrolf译者:豌豆花下猫Python猫原题:10 Unknown Security Pitfalls for Python英文:https://blog.sonarsource.com/10-unknown-security-pitfalls-for-pythonPython 开发者们在使用标准库和通用框架时,…
JS+CSS3 360度全景图插件 - Watch3D.js
日常闲扯 从上一篇文章到这篇中间快过了一年了,时间真滴过得快。不是在下中间没想过写新的文章,而是自己确实变懒了(体重1 1 1 1....) 。。OTL。。。不过到最后觉得还是需要写点东西,不然人就真废了,于是便有了这样一个插件&#…