feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
This commit is contained in:
107
3rdparty/opencv-4.5.4/samples/python/tutorial_code/imgProc/Smoothing/smoothing.py
vendored
Normal file
107
3rdparty/opencv-4.5.4/samples/python/tutorial_code/imgProc/Smoothing/smoothing.py
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
import sys
|
||||
import cv2 as cv
|
||||
import numpy as np
|
||||
|
||||
# Global Variables
|
||||
|
||||
DELAY_CAPTION = 1500
|
||||
DELAY_BLUR = 100
|
||||
MAX_KERNEL_LENGTH = 31
|
||||
|
||||
src = None
|
||||
dst = None
|
||||
window_name = 'Smoothing Demo'
|
||||
|
||||
|
||||
def main(argv):
|
||||
cv.namedWindow(window_name, cv.WINDOW_AUTOSIZE)
|
||||
|
||||
# Load the source image
|
||||
imageName = argv[0] if len(argv) > 0 else 'lena.jpg'
|
||||
|
||||
global src
|
||||
src = cv.imread(cv.samples.findFile(imageName))
|
||||
if src is None:
|
||||
print ('Error opening image')
|
||||
print ('Usage: smoothing.py [image_name -- default ../data/lena.jpg] \n')
|
||||
return -1
|
||||
|
||||
if display_caption('Original Image') != 0:
|
||||
return 0
|
||||
|
||||
global dst
|
||||
dst = np.copy(src)
|
||||
if display_dst(DELAY_CAPTION) != 0:
|
||||
return 0
|
||||
|
||||
# Applying Homogeneous blur
|
||||
if display_caption('Homogeneous Blur') != 0:
|
||||
return 0
|
||||
|
||||
## [blur]
|
||||
for i in range(1, MAX_KERNEL_LENGTH, 2):
|
||||
dst = cv.blur(src, (i, i))
|
||||
if display_dst(DELAY_BLUR) != 0:
|
||||
return 0
|
||||
## [blur]
|
||||
|
||||
# Applying Gaussian blur
|
||||
if display_caption('Gaussian Blur') != 0:
|
||||
return 0
|
||||
|
||||
## [gaussianblur]
|
||||
for i in range(1, MAX_KERNEL_LENGTH, 2):
|
||||
dst = cv.GaussianBlur(src, (i, i), 0)
|
||||
if display_dst(DELAY_BLUR) != 0:
|
||||
return 0
|
||||
## [gaussianblur]
|
||||
|
||||
# Applying Median blur
|
||||
if display_caption('Median Blur') != 0:
|
||||
return 0
|
||||
|
||||
## [medianblur]
|
||||
for i in range(1, MAX_KERNEL_LENGTH, 2):
|
||||
dst = cv.medianBlur(src, i)
|
||||
if display_dst(DELAY_BLUR) != 0:
|
||||
return 0
|
||||
## [medianblur]
|
||||
|
||||
# Applying Bilateral Filter
|
||||
if display_caption('Bilateral Blur') != 0:
|
||||
return 0
|
||||
|
||||
## [bilateralfilter]
|
||||
# Remember, bilateral is a bit slow, so as value go higher, it takes long time
|
||||
for i in range(1, MAX_KERNEL_LENGTH, 2):
|
||||
dst = cv.bilateralFilter(src, i, i * 2, i / 2)
|
||||
if display_dst(DELAY_BLUR) != 0:
|
||||
return 0
|
||||
## [bilateralfilter]
|
||||
|
||||
# Done
|
||||
display_caption('Done!')
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
def display_caption(caption):
|
||||
global dst
|
||||
dst = np.zeros(src.shape, src.dtype)
|
||||
rows, cols, _ch = src.shape
|
||||
cv.putText(dst, caption,
|
||||
(int(cols / 4), int(rows / 2)),
|
||||
cv.FONT_HERSHEY_COMPLEX, 1, (255, 255, 255))
|
||||
|
||||
return display_dst(DELAY_CAPTION)
|
||||
|
||||
|
||||
def display_dst(delay):
|
||||
cv.imshow(window_name, dst)
|
||||
c = cv.waitKey(delay)
|
||||
if c >= 0 : return -1
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
Reference in New Issue
Block a user