python opencv去图片水印
来源:互联网 发布:网络侦察技术 编辑:程序博客网 时间:2024/04/30 00:21
1
2
sudo brew tap homebrew
/
science
sudo brew install OpenCV
1
sudo brew update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
__author__
=
'River'
# -*- coding: utf-8 -*-
import
cv2,os,shutil,datetime,re,time
from
threading
import
Thread
from
hashlib
import
md5
PICHASH
=
{}
def
md5_file(name):
try
:
m
=
md5()
a_file
=
open
(name,
'rb'
)
m.update(a_file.read())
a_file.close()
return
m.hexdigest()
except
:
return
None
def
nowater(
dir
,newdir,dirlist):
global
PICHASH
for
ppicdir
in
dirlist:
if
(os.path.isdir(
dir
+
ppicdir)):
sortfiles
=
os.listdir(
dir
+
ppicdir)
if
'.DS_Store'
in
sortfiles:
sortfiles.remove(
'.DS_Store'
)
sortfiles.sort()
for
oldfile
in
sortfiles:
filetype
=
"."
+
oldfile.split(
"."
)[
len
(oldfile.split(
"."
))
-
1
]
picname_front
=
oldfile.split(filetype)[
0
]
oldfile
=
dir
+
ppicdir
+
"/"
+
oldfile
jpgname
=
picname_front
+
".jpg"
jpgname
=
newdir
+
ppicdir
+
"/"
+
jpgname
try
:
oldfile_hash
=
md5_file(oldfile)
oldfile_tmphashvalue
=
PICHASH.get(oldfile_hash)
file_object
=
open
(
'pichash.txt'
,
'a'
)
file_object.write(oldfile
+
":"
+
oldfile_hash
+
'\n'
)
file_object.close()
if
(oldfile_tmphashvalue
=
=
None
):
#新文件,已经处理过的图片,就不会再次处理了
if
not
os.path.exists(newdir
+
ppicdir):
os.makedirs(newdir
+
ppicdir)
#print oldfile 哈哈
#print jpgname
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
oldfile
+
",ing\n"
img
=
cv2.imread(oldfile)
x,y,z
=
img.shape
if
x <
10
:
#太小文件不处理
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
jpgname
+
"文件太小,跳过"
elif
x >
8000
:
#太大的文件不处理
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
jpgname
+
"文件太大,跳过"
elif
not
os.path.exists(jpgname):
#这就是最关键的代码了
for
i
in
xrange
(x):
for
j
in
xrange
(y):
varP
=
img[i,j]
if
sum
(varP)>
250
and
sum
(varP)<
765
:
#大于250,小于765(sum比白色的小)
img[i,j]
=
[
255
,
255
,
255
]
#cv2.imwrite(jpgname,img,[int(cv2.IMWRITE_JPEG_QUALITY),70])#linux跑悲剧了
cv2.imwrite(jpgname,img)
print
"jpgname:"
+
jpgname
PICHASH[oldfile_hash]
=
oldfile
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
oldfile
+
",done\n"
else
:
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
jpgname
+
"文件已存在,跳过\n"
elif
(oldfile_tmphashvalue!
=
None
):
if
(os.path.exists(jpgname)):
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
jpgname
+
"文件已存在,跳过\n"
else
:
shutil.copyfile(oldfile_tmphashvalue,oldfile)
shutil.copyfile(oldfile,jpgname)
print
datetime.datetime.now().strftime(
"%Y-%m-%d %H:%M:%S"
)
+
","
+
jpgname
+
"和老文件一样,拷贝旧文件,跳过"
except
Exception,e:
print
"Exception:"
,e
continue
if
__name__
=
=
'__main__'
:
dir
=
"pic/"
newdir
=
"picnew/"
list0
=
[]
list1
=
[]
list2
=
[]
list3
=
[]
list4
=
[]
for
ppicdir
in
os.listdir(
dir
) :
#生成多个list,主要是为了并发处理多个目录的图片
if
(os.path.isdir(
dir
+
ppicdir)):
if
(re.
compile
(r
'^[0-1].*'
).match(
str
(ppicdir))):
list0.append(ppicdir)
elif
(re.
compile
(r
'^[2-3].*'
).match(
str
(ppicdir))):
list1.append(ppicdir)
elif
(re.
compile
(r
'^[4-5].*'
).match(
str
(ppicdir))):
list2.append(ppicdir)
elif
(re.
compile
(r
'^[6-7].*'
).match(
str
(ppicdir))):
list3.append(ppicdir)
elif
(re.
compile
(r
'^[8-9].*'
).match(
str
(ppicdir))):
list4.append(ppicdir)
else
:
continue
#启n线程并行处理
Thread(target
=
nowater,args
=
(
dir
,newdir,list0)).start()
#这里只有
Thread(target
=
nowater,args
=
(
dir
,newdir,list1,)).start()
Thread(target
=
nowater,args
=
(
dir
,newdir,list2,)).start()
Thread(target
=
nowater,args
=
(
dir
,newdir,list3,)).start()
Thread(target
=
nowater,args
=
(
dir
,newdir,list4,)).start()
欢迎大家访问我的个人网站 萌萌的IT人
0 0
- python opencv去图片水印
- python opencv去图片水印
- 去图片水印
- opencv 图片增加水印
- CSDN博客去图片水印
- CSDN博客去图片水印
- CSDN博客图片去水印
- 图像处理-opencv去水印(如有图片侵权,请及时联系)
- python 添加图片水印
- photoshop中如何给图片加水印和去水印
- 图片去水印工具 Inpaint 3.0
- 关于图片去水印和转载
- c#实现图片gif去水印
- Markdown编辑之图片去水印
- Python PIL 图片添加水印
- Python PIL 图片水印添加
- Photoshop六种最基本的图片去字/去水印方法
- OpenCV实现批量图片加水印
- ASP.NET学习资源
- [Objective-C]简介、数据类型、NSLog、运算符
- 数据库查询工具包 DbUtils
- 十进制转换成二进制数(可扩展到八进制和十六进制)
- Office2007破解的问题
- python opencv去图片水印
- linux Oracle 自动备份并scp
- Linux2.6 内核的 Initrd 机制解析
- oc中的内存管理
- 使用jmeter 进行jdbc测试
- 1.2 struct 结构体 深入
- [黑马程序员][C语言]基础
- A mail sent to Google chromium.org Groups for Help
- DIV旋转的测试代码