From 560e271fd24560d654112b7470c607838c07a410 Mon Sep 17 00:00:00 2001 From: Xi Xu Date: Tue, 14 May 2024 10:40:16 +0800 Subject: [PATCH] Add 6 --- 6/1.py | 23 +++++++++++++++++++++++ 6/2.png | Bin 0 -> 7271 bytes 6/2.py | 26 ++++++++++++++++++++++++++ 6/3.png | Bin 0 -> 67655 bytes 6/3.py | 36 ++++++++++++++++++++++++++++++++++++ 6/4.py | 23 +++++++++++++++++++++++ 6 files changed, 108 insertions(+) create mode 100644 6/1.py create mode 100644 6/2.png create mode 100644 6/2.py create mode 100644 6/3.png create mode 100644 6/3.py create mode 100644 6/4.py diff --git a/6/1.py b/6/1.py new file mode 100644 index 0000000..6def1d9 --- /dev/null +++ b/6/1.py @@ -0,0 +1,23 @@ +import cv2 as cv +import matplotlib.pyplot as plt + +plt.rcParams["font.sans-serif"] = ["SimSun"] + +img = cv.imread(r"img\wirebond-mask.tif", cv.IMREAD_GRAYSCALE) +_, img_binary = cv.threshold(img, 128, 255, cv.THRESH_BINARY + cv.THRESH_OTSU) +plt.figure() +plt.subplot(141) +plt.axis("off") +plt.imshow(img_binary, cmap="gray") +plt.title("原图像") +i = 1 +for kernelSize in [11, 15, 45]: + kernel = cv.getStructuringElement(cv.MORPH_RECT, (kernelSize, kernelSize)) + img_result = cv.erode(img_binary, kernel, iterations=1) + i += 1 + plt.subplot(140 + i) + plt.axis("off") + plt.imshow(img_result, cmap="gray") + plt.title(f"{kernelSize}×{kernelSize}") +plt.tight_layout() +plt.show() diff --git a/6/2.png b/6/2.png new file mode 100644 index 0000000000000000000000000000000000000000..6aaf120621d080b79db2e59298fa9ef09aa3e8f9 GIT binary patch literal 7271 zcmeI1T}YEr7{{M?o3rVrVEAp0FmYh$NzMOdW|} zy6U1k&Dlkgx3nL%g7VXoaMSrt+w`8;JR;%ZcuUfmEBD`%X#P270@Z2{xS*CVtSuC zYCBoK8Uv#dyIx|0UQtkGEOtIf(FE$3+qJiRv(3iSar3eDQ{ltj<{wk9$2}uUR1bsK zyHYCJmOQMr6~!wpep1P-a1)1f^t01clT@zvMrVFb$Z(;KsTQh9yjlt7%;(nb5-|uJ zhZJbM%)>or%pM4fa6W@hVpkmhB}w2LV6gbAnSek<*Ucb3O`x@KF38%9$noVeboI;z za|;oqYo$PgjDx|M!OUm^@!f>$46eYnSPp($4)lucL}RgziyR-Lx6tCamOARRNA8l=Z3r^7ad*}dN|5DadZ>U;XGRk;XBJ-Id5J6z8Qr1B*ynGY0o?8hUwLG5S0;OOHc zqd|rYby<5K0eK9($v=}WWA0q9Rujc&5qZe-QPm%0!^auhMjq&T=TLRul7L0X=Coxf zcZ0{KXw_zks%@ryCUx>!jnmedJVu*Hibh#dy>t2z+aX5nP9APWImC+n#e-!iyV_?H z@2=*s?P{mH{4g5Qu4+w&7%5a^b8wR)nGu?~-S)16MMH&cpXOXU*?9L*s?Cj1WeLJx`i?s5v8=X{!Ijlw} zU5p4;qm$Nc91htAKI+*)f45luBhgrwAwXl%B@Tc--+-raPW}LhUb|SZqAVL5f1yPL NK~_didVg9;^G|(}HHQEI literal 0 HcmV?d00001 diff --git a/6/2.py b/6/2.py new file mode 100644 index 0000000..85fa30e --- /dev/null +++ b/6/2.py @@ -0,0 +1,26 @@ +import cv2 as cv +import matplotlib.pyplot as plt + +plt.rcParams["font.sans-serif"] = ["SimSun"] + +img = cv.imread(r"6\2.png", cv.IMREAD_GRAYSCALE) +_, img_binary = cv.threshold(img, 128, 255, cv.THRESH_BINARY + cv.THRESH_OTSU) +kernelSize = 40 +kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (kernelSize, kernelSize)) +img_open = cv.morphologyEx(img_binary, cv.MORPH_OPEN, kernel) +img_close = cv.morphologyEx(img_binary, cv.MORPH_CLOSE, kernel) +plt.figure() +plt.subplot(131) +plt.axis("off") +plt.imshow(img_binary, cmap="gray") +plt.title("待处理的原图像") +plt.subplot(132) +plt.axis("off") +plt.imshow(img_open, cmap="gray") +plt.title("开运算的结果") +plt.subplot(133) +plt.axis("off") +plt.imshow(img_close, cmap="gray") +plt.title("闭运算的结果") +plt.tight_layout() +plt.show() diff --git a/6/3.png b/6/3.png new file mode 100644 index 0000000000000000000000000000000000000000..d30384bef6069fd1d0f11939a45d357d84680363 GIT binary patch literal 67655 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 Md>!1fJNn$e0hyAB_y7O^ literal 0 HcmV?d00001 diff --git a/6/3.py b/6/3.py new file mode 100644 index 0000000..8662052 --- /dev/null +++ b/6/3.py @@ -0,0 +1,36 @@ +import cv2 as cv +import matplotlib.pyplot as plt + +plt.rcParams["font.sans-serif"] = ["SimSun"] + +img = cv.imread(r"6\3.png", cv.IMREAD_GRAYSCALE) +_, img_binary = cv.threshold(img, 128, 255, cv.THRESH_BINARY + cv.THRESH_OTSU) +kernelSize = 130 +kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (kernelSize, kernelSize)) +img_dilate = cv.dilate(img_binary, kernel, iterations=1) +img_erode = cv.erode(img_binary, kernel, iterations=1) +img_open = cv.morphologyEx(img_binary, cv.MORPH_OPEN, kernel) +img_close = cv.morphologyEx(img_binary, cv.MORPH_CLOSE, kernel) +plt.figure() +plt.subplot(151) +plt.axis("off") +plt.imshow(img_binary, cmap="gray") +plt.title("二值图像") +plt.subplot(152) +plt.axis("off") +plt.imshow(img_dilate, cmap="gray") +plt.title("膨胀运算结果") +plt.subplot(153) +plt.axis("off") +plt.imshow(img_erode, cmap="gray") +plt.title("腐蚀运算结果") +plt.subplot(154) +plt.axis("off") +plt.imshow(img_open, cmap="gray") +plt.title("开运算结果") +plt.subplot(155) +plt.axis("off") +plt.imshow(img_close, cmap="gray") +plt.title("闭运算结果") +plt.tight_layout() +plt.show() diff --git a/6/4.py b/6/4.py new file mode 100644 index 0000000..2e7ee60 --- /dev/null +++ b/6/4.py @@ -0,0 +1,23 @@ +import cv2 as cv +import matplotlib.pyplot as plt + +plt.rcParams["font.sans-serif"] = ["SimSun"] + +img = cv.imread(r"img\mapleleaf.tif", cv.IMREAD_GRAYSCALE) +_, img_binary = cv.threshold(img, 128, 255, cv.THRESH_BINARY + cv.THRESH_OTSU) +plt.figure() +plt.subplot(141) +plt.axis("off") +plt.imshow(img_binary, cmap="gray") +plt.title("原图像") +i = 1 +for kernelSize in [3, 9, 15]: + kernel = cv.getStructuringElement(cv.MORPH_RECT, (kernelSize, kernelSize)) + img_result = cv.morphologyEx(img_binary, cv.MORPH_GRADIENT, kernel) + i += 1 + plt.subplot(140 + i) + plt.axis("off") + plt.imshow(img_result, cmap="gray") + plt.title(f"{kernelSize}×{kernelSize}") +plt.tight_layout() +plt.show()