nhập khẩu
cv2
nhập khẩu
numpy như np
từ
tkinter
nhập khẩu
filedialog, Tk
từ
hệ điều hành
nhập khẩu
lấy cwd
từ
nốt Rê
nhập khẩu
tìm tất cả
định nghĩa
mở_đường_dẫn():
gốc rễ
=
Tk()
root.rút()
đường dẫn tệp
=
(filedialog.askopenfilename(tiêu đề
=
'Chọn tệp hình ảnh'
, các loại tập tin
=
[(
'Tất cả các tập tin'
,
'*'
)]))
trở lại
đường dẫn tệp
định nghĩa
dodgeNaive(hình ảnh, mặt nạ):
chiều rộng, chiều cao
=
hình ảnh.hình dạng[:
2
]
trộn
=
np.zeros((chiều rộng, chiều cao), np.uint8)
vì
cột
TRONG
phạm vi
(chiều rộng):
vì
hàng ngang
TRONG
phạm vi
(chiều cao):
nếu như
mặt nạ[cột, hàng]
=
=
255
:
pha trộn[cột, hàng]
=
255
khác
:
tạm thời
=
(hình ảnh[cột, hàng] <<
8
)
/
(
255
-
mặt nạ)
nếu như
tạm thời.
bất kì
() >
255
:
tạm thời
=
255
pha trộn[cột, hàng]
=
tạm thời
trở lại
trộn
định nghĩa
dodgeV2(hình ảnh, mặt nạ):
trở lại
cv2.divide(hình ảnh,
255
-
mặt nạ, cân
=
256
)
định nghĩa
burnV2(hình ảnh, mặt nạ):
trở lại
255
-
cv2.chia(
255
-
hình ảnh,
255
-
mặt nạ, cân
=
256
)
định nghĩa
rgb_to_sketch(tên_ảnh_src):
in
(
'Đang chuyển đổi...'
)
hình ảnh màu
=
cv2.imread(src_image_name)
img_xám
=
cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
img_gray_inv
=
255
-
img_xám
hình ảnh mờ
=
cv2.GaussianBlur(img_gray_inv, ksize
=
(
hai mươi mốt
,
hai mươi mốt
),
sigmaX
=
0
, sigma
=
0
)
pha trộn hình ảnh
=
né tránhV2(img_gray, img_blur)
cv2.imwrite(dst_image_name, img_blend)
lưu_đường_dẫn
=
lấy cwd()
+
"\\"
+
tên_ảnh_dst
in
(
'Chuyển đổi hoàn tất!!!\n'
)
in
(
'Lưu đường dẫn:'
+
lưu_đường_dẫn)
cv2.imshow(lưu_đường_dẫn, img_blend)
cv2.waitKey(
0
)
cv2.destroyAllWindows()
nếu như
__tên__
=
=
'__chủ yếu__'
:
in
(
'Vui lòng chọn một hình ảnh (đường dẫn không chứa tiếng Trung Quốc):'
)
src_tên_ảnh
=
mở_đường_dẫn()
in
(tên_hình_ảnh_src
+
'\N'
)
tên_hình_ảnh
=
'
'.tham gia(tìmtấtcả(r'
[^\\
/
:
*
?"<>|\r\n]
+
$', src_image_name))
tên_ảnh_dst
=
'Phác thảo_'
+
tên_hình_ảnh
rgb_to_sketch(tên_ảnh_src)
Tôi là một lập trình viên xuất sắc, rất giỏi!