以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

抖音上的文字配图怎么制作的,抖音文字短视频制作软件

  

  大家好,我是辣。   

  

  最近在学算法,今天给大家带来一个机器学习和实战的小项目。   

  

  #项目效果显示。   

  

     

  

  #学习目标。   

  

  1.cv2变换图片数据。   

  

  2.numpy提取图像矩阵数据。   

  

  3.k-means算法获取图片的分类。   

  

  #工具使用。   

  

  开发工具:pycharm。   

  

  开发环境:Windows10,Python3.7   

  

  使用套件:cv2,numpy。   

  

  #项目准备。   

  

  *需要转换对应的图片-下载-cv2的工具包:pip安装opencv-python。   

  

  CV2的意思是OpenCV2,是基于BSD许可证(开源)的跨平台计算机视觉库副本,可以运行在Linux、Windows、Android和Mac OS操作系统上。它是轻量级和高效的——它由一系列C函数和少量C类组成。还提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉中很多常见的算法。OpenCV有超过500个c函数,包括跨平台的中级和数百个高级API。它不依赖于其他外部库——尽管也可以使用一些外部库。   

  

     

  

  #项目创意分析。   

  

  首先,准备要处理的图片。   

  

     

  

  使用opencv读取相应的图片数据。   

  

  *阅读图片。   

  

  FP=r ' 1 . jpg ' img=cv2 . imread(FP)print(img . shape)   

  

     

  

  读取返回的数据是矩阵元组数据(高度、宽度、通道数)。   

  

  *将图片转换为灰色-通过黑白区分图片颜色的深度-通过kmeans算法区分图片点。   

  

  高度,宽度,* _=frame . shape frame _ gray=cv2 . CVT color(frame,cv2。COLOR _ BGR2GRAY)frame _ array=NP . float 32(frame _ gray . resform(-1))紧致度,标签,质心=cv2.kmeans(frame_array,K,None,(cv2。TERM_CRITERIA_EPS cv2。TERM_CRITERIA_MAX_ITER,10,1.0),10,cv2。KMEANS_RANDOM_CENTERS)   

  

     

  

  Kmeans:返回三个参数:紧致度,每个点到相应重心的距离的平方和,标签,结果标记,每个成员都标记为组的序列号,如。   

  

  0,1,2,3,4,等等。中心:由簇的中心组成的阵列。   

  

  *对得到的那些对应的中心点进行排序-0是最暗的,分类由自己决定-排序后用中心点的分类替换对应的图片像素点-可以得到图片对应的色深关系-用字符替换深色的-用空白的替换浅色的,或者用横条替换浅色的-显示颜色的差异-替换后放入新的画布-拼接成新的图片(注意图片的缩放比例栏。   

  

  #简单的源代码共享。   

  

  导入cv2导入随机导入numpy为npdef img2 strimg(帧,K=3):高度,宽度,* _=框架。shape frame _ gray=cv2。CVT颜色(框架,cv2 .颜色_BGR2GRAY) #转换数据类型,一列显示frame _ array=NP。浮动32(帧_灰色。resform(-1))紧致度,标签,质心=cv2.kmeans(frame_array,K,None,(cv2 .术语标准电动助力转向系统cv2 .ITER,10,1.0),10,cv2 .KMEANS_RANDOM_CENTERS)质心=np.uint8(质心)#转换成整形#标签的数个矩心以随机顺序排列,所以需要简单处理矩心。# 返回一个折叠成一维的数组质心=质心。展平()#排序质心_已排序=已排序(质心)#获得不同质心的明暗程度,0最暗形心_索引=NP。数组([形心_已排序。索引(值)表示形心中的值]))亮=[ABS((3 * I-2 * K)/(3 * K))对于范围(1,1 K)中的我]光明界=光明。指数(NP。最小(亮))阴影=[ABS((3 * I-K)/(3 * K))对于范围(1,1 K)中的I]shadow _ bound=阴影。指数(NP。最小(阴影))标签=标签。展平将标签转变为实际的明暗程度列表,0最暗标签=质心_索引[标签]标签_精选=[标签[行*宽度:(行1) *宽度:2]范围内的行(0, 高度,2)])画布=NP。零((3 *高度,3 *宽度,3),np.uint8) canvas.fill(255) #创建长宽为原图三倍的白色画布如果cols=shadow _ bound : cv2。画布,字符串。randint(2,9)),(x,y),cv2,则y=0表示labels _ picked: x=0表示rows:中的科尔.FONT_HERSHEY_PLAIN,0.45,0.1)elif cols=bright _ bound : cv2。putText(画布,'-',(x,y),cv2 .FONT_HERSHEY_PLAIN,0.4,0,1)x=6y=6返回canvasif _ _ name _ _=' _ _ main _ _ ' : FP=r ' 1。jpg ' img=cv2。imread(FP)print(img)str _ img=imgstrimg(img)cv2。imwrite('结果。' jpg ',str _ img)   

  

     

  

  最后,小编想说:我是一名大蟒开发工程师,整理了一套最新的大蟒系统学习教程,想要这些资料的可以关注私信小编"01"即可(免费分享哦)希望能对你有所帮助。