个人主页:IT贫道-CSDN博客
私聊博主:私聊博主加WX好友,获取更多资料哦~
博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频
目录
1. 二值化展示图像代码
2. 安装Anconda3
3. 安装Python3
4. 安装依赖
5. 下载项目
6. 下载模型
7.添加GPU运行需要的dll文件
8. 运行项目
# encoding=gbk
import cv2
# __author__ = "WSX"
# 1.读取图片
img = cv2.imread("img3.jpg")
#显示图像,第一个参数是窗口名称,第二个是读取的图片
cv2.imshow("girl", img)
temp = img.copy()
#做2次缩放
for i in range(3):
dst = cv2.pyrDown( temp )
temp = dst.copy()
#将缩放的图像做成灰度图
gray = cv2.cvtColor(temp , cv2.COLOR_BGR2GRAY)
#将灰度图变成二值化图像
# cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst=None)
# src:需要进行二值化的一张灰度图像
# maxValue: 满足条件的像素点需要设置的最大灰度值。(将要设置的灰度值最大值,255是白色)
# adaptiveMethod:自适应阈值算法。可选ADAPTIVE_THRESH_MEAN_C 或 ADAPTIVE_THRESH_GAUSSIAN_C
# thresholdType:opencv提供的二值化方法,只能THRESH_BINARY或者THRESH_BINARY_INV
# blockSize:要分成的区域大小,把图片每个像素点作为中心取N*N的区域,然后计算这个区域的阈值,来决定这个像素点变0还是变255,一般取奇数
# C:常数,每个区域计算出的阈值的基础上在减去这个常数作为这个区域的最终阈值,可以为负数
binary = cv2.adaptiveThreshold( gray ,255 , cv2.ADAPTIVE_THRESH_GAUSSIAN_C , cv2.THRESH_BINARY, 25 , 10)
#显示二值转换后的图像
cv2.imshow("binary", binary)
#获取二值转换后图像的长和宽
w,h = binary.shape
print(binary)
print(w,h)
#初始化文件
with open("result1.txt", "w") as f:
f.write("")
f.close()
#向文件中写入数据,如果是0 则是黑色,如果是255 则是白色
with open("result1.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()
#显示图像必须调用一下两个方法
#cv2.waitKey(0): 是一个和键盘绑定的函数,它的作用是等待一个键盘的输入(因为我们创建的图片窗口如果没有这个函数的话会闪一下就消失了,
# 所以如果需要让它持久输出,我们可以使用该函数)。它的参数是毫秒级。该函数等待任何键盘事件的指定毫秒。如果您在此期间按下任何键,
# 程序将继续进行。我们也可以将其设置为一个特定的键。
cv2.waitKey(0)
Anaconda是一个开源的Python发行版本,python是一个编译器,如果不使用Anaconda那么安装起来会比较痛苦,各个库之间的依赖性就很难连接的很好。Anaconda可以看做Python的一个集成安装,里面集成了很多关于python科学计算的第三方库,安装它后就默认安装了python、IPython、集成开发环境Spyder和众多的包和模块,包含了conda(conda 是开源包(packages)和虚拟环境(environment)的管理系统。)、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,大概几百兆左右,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
我们可以从Anaconda官网 Anaconda | The World’s Most Popular Data Science Platform 下载Anaconda,一般官网下载比较慢,可以选择使用镜像下载,地址如下:
Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
现在之后直接双击安装即可,注意安装路径中不要有中文和空格。安装完成之后,配置环境变量,如下图:
配置完成之后,打开CMD命令窗口输入:conda,验证是否安装成功:
基于Anconda安装Python3,修复老照片这里安装python使用至少python3.6版本。命令如下:
#安装python环境
conda create --name python37_style python=3.7
#卸载python环境
conda remove --name python37_style --all
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pillow
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy==1.1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.15.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-estimator==1.15.1
项目下载地址:https://github.com/anishathalye/neural-style,直接下载就可以,下载好的项目名字为“neural-style-master”,将下载项目解压到无中文路径中,这里放在J盘下:
从http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat网站下载VGG 训练好的模型,将下载好的“imagenet-vgg-verydeep-19.mat”文件放在项目“neural-style-master”目录中
将dll目录下的5个dll文件复制到“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin”目录中,不出意外,应该不需要替换任何文件,如有替换,现将之前的dll拷贝出来,以防万一有问题可以回退。
以上5个dll文件时tensorflow1.x版本使用以来的dll文件。现在大多都是使用tensorflow2.x版本,此风格迁移项目使用的是tensorflow1.x版本,所以需要拷贝支持tensorflow1.x版本的dll文件。
1) 将要处理的图片放在input目录中
需要在“neural-style-master”项目中创建对应的input目录,将要处理的图片放在input目录下
2) 将处理后的图片放在output目录中
需要在“neural-style-master”项目中创建对应的output目录,将要处理后的风格图片放在output目录下
3) 进入“neural-style-master”目录下执行命令
#切换python环境
conda activate python37_style
#执行如下命令转化图片,--content 指定输入的图片,--style指定风格图片 ,--output 指定处理后的风格图片
python neural_style.py --content ./input/img1.jpg --styles ./examples/1-style.jpg --output ./output/img1.jpg
此外:项目改变的东西如下:
还有一个是:cusolver64_100.dll,路径:“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin”