18、OpenCV Python 简单实现一个图片生成(类似抖音生成字母人像)
__author__ = "WSX"
import cv2 as cv
import numpy as np def local_threshold(img): #局部阈值
gray = cv.cvtColor(img , cv.COLOR_BGR2GRAY) #首先变为灰度图
binary = cv.adaptiveThreshold( gray ,255 , cv.ADAPTIVE_THRESH_GAUSSIAN_C , cv.THRESH_BINARY, 25 , 10,)#255 最大值
#上面的 有两种方法ADAPTIVE_THRESH_GAUSSIAN_C (带权重的均值)和ADAPTIVE_THRESH_MEAN_C(和均值比较)
#blockSize 必须为奇数 ,c为常量(每个像素块均值 和均值比较 大的多余c。。。少于c)
#ret 阈值 , binary二值化图像
cv.imshow("binary", binary)
return binary def jinzita( level ,img ):
temp = img.copy()
level = level
pyr_img = []
for i in range(level):
dst = cv.pyrDown( temp ) #pyrup 和pyrDown 相反
temp = dst.copy()
return temp def result(binary):
w , h = binary.shape[:2]
print(binary)
print(w,h)
# temp = np.zeros((w ,h))
# temp = list(temp)
#temp = []; tt = []
with open("result.txt","r+") as f:
for i in range(w):
for j in range(h):
if binary[i,j] == 0:
temp = ""
elif binary[i,j] == 255:
temp = ""
f.write(temp)
f.write("\r\n")
f.close()
#print(temp.shape)
def main():
img = cv.imread("1.JPG")
#cv.namedWindow("Show", cv.WINDOW_AUTOSIZE)
cv.imshow("Show", img)
t = jinzita(3, img)
binary=local_threshold(t)
result(binary)
cv.waitKey(0)
cv.destroyAllWindows() main()
改进了一下下:
__author__ = "WSX"
import cv2 as cv
import numpy as np def local_threshold(img): #局部阈值
gray = cv.cvtColor(img , cv.COLOR_BGR2GRAY) #首先变为灰度图
binary = cv.adaptiveThreshold( gray ,255 , cv.ADAPTIVE_THRESH_GAUSSIAN_C , cv.THRESH_BINARY, 25 , 10,)#255 最大值
#上面的 有两种方法ADAPTIVE_THRESH_GAUSSIAN_C (带权重的均值)和ADAPTIVE_THRESH_MEAN_C(和均值比较)
#blockSize 必须为奇数 ,c为常量(每个像素块均值 和均值比较 大的多余c。。。少于c)
#ret 阈值 , binary二值化图像
cv.imshow("binary", binary)
return binary def jinzita( level ,img ):
temp = img.copy()
level = level
pyr_img = []
for i in range(level):
dst = cv.pyrDown( temp ) #pyrup 和pyrDown 相反
temp = dst.copy()
return temp def result(binary):
w , h = binary.shape[:2]
print(binary)
print(w,h) with open("result.txt", "w") as f: #初始化文件
f.write("")
f.close()
with open("result.txt","r+") as f:
for i in range(w):
for j in range(h):
if binary[i,j] == 0:
temp = "●"
elif binary[i,j] == 255:
temp = "○"
f.write(temp)
f.write("\r\n")
f.close()
#print(temp.shape)
def main():
img = cv.imread("1.JPG")
#cv.namedWindow("Show", cv.WINDOW_AUTOSIZE)
cv.imshow("Show", img)
t = jinzita(3, img)
binary=local_threshold(t)
result(binary)
cv.waitKey(0)
cv.destroyAllWindows() main()
18、OpenCV Python 简单实现一个图片生成(类似抖音生成字母人像)的更多相关文章
- 一个类似抖音 APP 拍摄按钮效果的控件
TouchButton 一个类似抖音 APP 拍摄按钮效果的控件 效果图预览 用法 <net.angrycode.library.TouchButton android:id="@+i ...
- Python简单的制作图片验证码
-人人可以学Python--这里示范的验证码都是简单的,你也可以把字符扭曲 人人可以学Python.png Python第三方库无比强大,PIL 是python的一个d第三方图片处理模块,我们也可以使 ...
- javascript - 简单实现一个图片延迟加载的jQuery插件
最近在看一本书<Third-Party Javascript>很不错,推荐给大家,下载地址各位自己搜索了. 步骤: 1.打开google,鉴于google基本打不开,那么就打开这个网址吧. ...
- Python爬虫帮你打包下载所有抖音好听的背景音乐,还不快收藏一起听歌【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 用python悄悄记录了室友的抖音在线时间
今天给大家分享一篇有趣的文章,灵感来自于前几天与室友的聊天,他告诉我抖音可以实时显示人的在线情况,如下图: 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在 ...
- opencv第一课 打开一个图片
#include<stdio.h>#include<stdlib.h>#include<opencv2\opencv.hpp>#include<iostrea ...
- 使用python简单创建一个用户和商城小程序
整体思路: 1.用户功能:购买.显示余额.列表清单.输入 2.商家功能:修改和添加商品 创建两个接口: 用户: #Author: Gordon #读取文档,生成goodsf = open('goods ...
- Python-制作抖音图片
---------------------------------------------------------------------------------------------------- ...
- Python爬虫---爬取抖音短视频
目录 前言 抖音爬虫制作 选定网页 分析网页 提取id构造网址 拼接数据包链接 获取视频地址 下载视频 全部代码 实现结果 待解决的问题 前言 最近一直想要写一个抖音爬虫来批量下载抖音的短视频,但是经 ...
随机推荐
- 一.lock的使用
使用ReentrantLock类 ReentrantLock类在扩展功能上更加强大,比如嗅探锁定,多路分支通知.而且在使用上也比synchronized更加灵活 调用ReentrantLock对象的l ...
- ffmpeg-URL(转)
ffmpeg中为方便对资源进行访问,定义了两个结构体,URLContext中是对具体资源文件进行操作的上下文,URLProtocol则是在将资源进行分类的基础上,对某一类资源操作的函数集,熟悉Linu ...
- ASP.NET Core应用到Windows Service中
托管到Windows Service中 众所周知,ASP.NET Core采用了和传统ASP.NET不同的托管和HTTP处理方式,即把服务器和托管环境完全解耦. ASP.NET Core内置了两个HT ...
- 移植RT2870无线网卡驱动到s3c2416
公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤. 1.下载驱动源码,雷凌官网的下载地址是: http://www.ralinktech.com ...
- java定时任务调度工具Timer与Quartz的区别
Timer与Quartz的区别有三点: 1.出身不同:Timer由jdk直接提供,调用方式简单粗暴,不需要其它jar包支持.Quartz并非jdk自带,需要引入相应的jar包 2.能力区别:主要体现在 ...
- xcode中的预定义宏
[xcode中的预定义宏] 1.SRCROOT,是定义本target的proj的路径. 2.OBJROOT,对象文件根路径,对象文件(即obj文件)就是中间的临时文件.中间文件输出目录的名字以“pro ...
- BootstrapValidator:表单验证神器
前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...
- centos 搭建docker环境
我有一台便宜的腾讯云服务器,当然配置自然也是最低的,只是用来平常玩一玩,学习的用处,下面介绍一下我在上面搭建docker的心得,共勉一下. 安装与配置 Docker 安装 Docker Docker ...
- 20-取石子动态规则(hdu2516 斐波那契博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=2516 取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memor ...
- 2、awk的输出
1.常见的输出格式整理 awk '{print "this is " $1, $2, $1*$2, NR, NF, $NF}' file1 ###字符输出,字段输出,运算输出, ...