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构造网址 拼接数据包链接 获取视频地址 下载视频 全部代码 实现结果 待解决的问题 前言 最近一直想要写一个抖音爬虫来批量下载抖音的短视频,但是经 ...
随机推荐
- 凸优化 Convex Optimization PDF 扫描文字识别版
凸优化理论 Convex Optimization 清华大学出版社 王书宁许窒黄晓霖译 Stephen Boyd Lieven Vandenbergt原著 2013 年l 月第1 版 下载链接 链接: ...
- MySQL MVCC原理
1 MVCC基本原理 MVCC:多版本并发控制(MVCC,Multiversion Currency Control).一般情况下,事务性储存引擎不是只使用表锁,行加锁的处理数据,而是结合了MVCC机 ...
- VS2010中将CString转换为const char*
最近碰到了CString 转 const char *的问题. 以前只要简单的一个强制转换就OK了,可现在是不行了,搜索了很多资料,终于搞定,主要是Unicode和ANSI的问题,只要做一个转换就可以 ...
- printf("%f\n", 3);输出结果为什么是0.000000(转载)
printf不会关心你输入的参数的类型,你输入的实际是 printf("%f",3),但是这个整型3不会被隐式类型转换为浮点型,而是被直接按内存内容当作浮点型 也就是说,内部使用等 ...
- Python基础学习六 操作MySQL
python操作数据库,需要先安装模块 1.下载MySQL.Redis模块 2.解压后,在当前目录执行 python setup.py install 3.或是pycharm直接选择安装 import ...
- java基础之JDBC三:简单工具类的提取及应用
简单工具类: public class JDBCSimpleUtils { /** * 私有构造方法 */ private JDBCSimpleUtils() { } /** * 驱动 */ publ ...
- 【bzoj1050】[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2813 Solved: 1534[Submit][St ...
- Python pandas DataFrame操作
1. 从字典创建Dataframe >>> import pandas as pd >>> dict1 = {'col1':[1,2,5,7],'col2':['a ...
- win32多线程 (四) Mutex
Mutex 用途和critical section 非常类似,不过Mutex是内核对象,速度比section慢.Mutexes可以跨进程使用.另外Mutex在等待的时候可以设置等待时间. 以下是两种 ...
- dataview 组件使用示例
来自<sencha touch 权威指南> ------------------------------- 例子1——app.js代码如下: Ext.require(['Ext.data. ...