add 1 and 2
This commit is contained in:
1 parent
8d72ef3dc2
commit
b15e6b19ce
14 files changed
+404
No files matched your search
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Python Debugger: Current File",
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"console": "integratedTerminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"python.analysis.autoImportCompletions": true
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"hellohellohello\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(\"hello\" * 3)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"x = 2, y = 3.000000\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(\"x = %d, y = %f\" % (2, 3.0))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"(2-3j)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"x = 3 + 2j\n",
|
||||
"y = -1j\n",
|
||||
"print(x * y)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"abcdefg\n",
|
||||
"bc\n",
|
||||
"bcdefg\n",
|
||||
"abc\n",
|
||||
"abcdef\n",
|
||||
"ef\n",
|
||||
"efg\n",
|
||||
"abcdefg\n",
|
||||
"aceg\n",
|
||||
"gfedcba\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"strs = \"abcdefg\"\n",
|
||||
"print(strs[0:7:1])\n",
|
||||
"print(strs[1:3])\n",
|
||||
"print(strs[1:])\n",
|
||||
"print(strs[:3])\n",
|
||||
"print(strs[:-1])\n",
|
||||
"print(strs[-3:-1])\n",
|
||||
"print(strs[-3:])\n",
|
||||
"print(strs[:])\n",
|
||||
"print(strs[::2])\n",
|
||||
"print(strs[::-1])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"较小值为: 5.7\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def minimal(x, y):\n",
|
||||
" if x > y:\n",
|
||||
" print(\"较小值为: \", y)\n",
|
||||
" else:\n",
|
||||
" print(\"较小值为: \", x)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"a = float(input(\"请输入第一个数据: \")) # 输入了 5.4\n",
|
||||
"b = float(input(\"请输入第二个数据: \")) # 输入了 6.8\n",
|
||||
"minimal(a, b)"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import cv2
|
||||
|
||||
lenna = cv2.imread(r"img\Lenna.png")
|
||||
print(type(lenna))
|
||||
cv2.namedWindow("Lena", cv2.WINDOW_AUTOSIZE)
|
||||
cv2.imshow("Lena", lenna)
|
||||
cv2.waitKey(0)
|
||||
cv2.destroyWindow("Lena")
|
||||
cv2.imwrite(r"img\test_imwrite.png", lenna, (cv2.IMWRITE_PNG_COMPRESSION, 5))
|
||||
@@ -0,0 +1,9 @@
|
||||
import cv2
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.rcParams["font.family"] = ["SimHei"]
|
||||
plt.rcParams["axes.unicode_minus"] = False
|
||||
img_BGR = cv2.imread(r"img\iris.jpg")
|
||||
img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
|
||||
plt.imshow(img_RGB)
|
||||
plt.show()
|
||||
@@ -0,0 +1,36 @@
|
||||
import cv2
|
||||
import matplotlib.pyplot as plt
|
||||
import math
|
||||
import numpy as np
|
||||
|
||||
|
||||
def createBox():
|
||||
box = np.zeros((100, 100), np.uint8) + 255
|
||||
print(type(box))
|
||||
shape = box.shape
|
||||
box = cv2.circle(box, (30, 50), 25, 0, -1)
|
||||
for i in range(shape[0]):
|
||||
for j in range(shape[1]):
|
||||
if j in range(45, 95) and i in range(25, 75):
|
||||
box[i, j] = 195
|
||||
return box
|
||||
|
||||
|
||||
def histogram(image):
|
||||
(row, col) = image.shape
|
||||
hist = [0] * 256
|
||||
for i in range(row):
|
||||
for j in range(col):
|
||||
hist[image[i, j]] += 1
|
||||
return hist
|
||||
|
||||
|
||||
image0 = createBox()
|
||||
plt.figure()
|
||||
plt.subplot(1, 2, 1)
|
||||
plt.imshow(image0, vmin=0, vmax=255, cmap=plt.cm.gray)
|
||||
plt.title("idel image")
|
||||
image_hist0 = histogram(image0)
|
||||
plt.subplot(1, 2, 2)
|
||||
plt.bar(range(256), image_hist0)
|
||||
plt.show()
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 187 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 111 KiB |
@@ -0,0 +1,50 @@
|
||||
import numpy as np
|
||||
import cv2 as cv
|
||||
import matplotlib.pyplot as plt
|
||||
from sympy import im
|
||||
|
||||
|
||||
def global_linear_transmation(im, c=0, d=255):
|
||||
img = im.copy()
|
||||
maxV = img.max()
|
||||
minV = img.min()
|
||||
if maxV == minV:
|
||||
return np.uint8(img)
|
||||
for i in range(img.shape[0]):
|
||||
for j in range(img.shape[1]):
|
||||
img[i, j] = ((d - c) / (maxV - minV)) * (img[i, j] - minV) + c
|
||||
return np.uint8(img)
|
||||
|
||||
|
||||
def histogram_equalization(im):
|
||||
return np.uint8(cv.equalizeHist(im))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
im = cv.imread(r"E:\OneDrive\Code\Python\2\iris.jpg", cv.IMREAD_GRAYSCALE)
|
||||
im1 = global_linear_transmation(im, 0, 150)
|
||||
im2 = global_linear_transmation(im, 100)
|
||||
im3 = global_linear_transmation(im, 50, 150)
|
||||
im4 = histogram_equalization(im)
|
||||
plt.figure()
|
||||
plt.subplot(241)
|
||||
plt.imshow(im1, cmap="gray")
|
||||
plt.title("darker")
|
||||
plt.subplot(242)
|
||||
plt.imshow(im2, cmap="gray")
|
||||
plt.title("brighter")
|
||||
plt.subplot(243)
|
||||
plt.imshow(im3, cmap="gray")
|
||||
plt.title("lower contrast")
|
||||
plt.subplot(244)
|
||||
plt.imshow(im4, cmap="gray")
|
||||
plt.title("equalized")
|
||||
plt.subplot(245)
|
||||
plt.hist(im1.flatten(), 256, [0, 256])
|
||||
plt.subplot(246)
|
||||
plt.hist(im2.flatten(), 256, [0, 256])
|
||||
plt.subplot(247)
|
||||
plt.hist(im3.flatten(), 256, [0, 256])
|
||||
plt.subplot(248)
|
||||
plt.hist(im4.flatten(), 256, [0, 256])
|
||||
plt.show()
|
||||
@@ -0,0 +1,26 @@
|
||||
import numpy as np
|
||||
import cv2 as cv
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
def gamma_trans(img, gamma=1.0):
|
||||
gamma_table = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]
|
||||
gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)
|
||||
return cv.LUT(img, gamma_table)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
im = cv.imread(r"E:\OneDrive\Code\Python\2\iris.jpg", cv.IMREAD_GRAYSCALE)
|
||||
im1 = gamma_trans(im, 0.5)
|
||||
im2 = gamma_trans(im, 1.5)
|
||||
plt.figure()
|
||||
plt.subplot(131)
|
||||
plt.imshow(im, cmap="gray")
|
||||
plt.title("original")
|
||||
plt.subplot(132)
|
||||
plt.imshow(im1, cmap="gray")
|
||||
plt.title("gamma = 0.5")
|
||||
plt.subplot(133)
|
||||
plt.imshow(im2, cmap="gray")
|
||||
plt.title("gamma = 1.5")
|
||||
plt.show()
|
||||
@@ -0,0 +1,28 @@
|
||||
import cv2 as cv
|
||||
from matplotlib import pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
img = cv.imread(r"E:\OneDrive\Code\Python\2\iris.jpg", 0)
|
||||
fil1 = 1 / 16 * np.array([[1, 2, 1], [2, 4, 2], [1, 2, 1]])
|
||||
fil2 = 1 / 9 * np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]])
|
||||
fil3 = 1 / 10 * np.array([[1, 1, 1], [1, 2, 1], [1, 1, 1]])
|
||||
fil4 = np.array([[-1, -1, -1], [-1, 9, -1], [-1, -1, -1]])
|
||||
ImgSmoothed1 = cv.filter2D(img, -1, fil1, borderType=cv.BORDER_DEFAULT)
|
||||
ImgSmoothed2 = cv.filter2D(img, -1, fil2, borderType=cv.BORDER_DEFAULT)
|
||||
ImgSmoothed3 = cv.filter2D(img, -1, fil3, borderType=cv.BORDER_DEFAULT)
|
||||
ImgSharp = cv.filter2D(img, -1, fil4, borderType=cv.BORDER_DEFAULT)
|
||||
|
||||
plt.figure()
|
||||
plt.subplot(221)
|
||||
plt.imshow(ImgSmoothed1, cmap="gray")
|
||||
plt.title("smoothed1")
|
||||
plt.subplot(222)
|
||||
plt.imshow(ImgSmoothed2, cmap="gray")
|
||||
plt.title("smoothed2")
|
||||
plt.subplot(223)
|
||||
plt.imshow(ImgSmoothed3, cmap="gray")
|
||||
plt.title("smoothed3")
|
||||
plt.subplot(224)
|
||||
plt.imshow(ImgSharp, cmap="gray")
|
||||
plt.title("sharp")
|
||||
plt.show()
|
||||
@@ -0,0 +1,70 @@
|
||||
import random as rd
|
||||
import numpy as np
|
||||
import cv2 as cv
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
def addSaltAndPepper(src, percentage):
|
||||
NoiseImg = src.copy()
|
||||
NoiseNum = int(percentage * src.shape[0] * src.shape[1])
|
||||
for i in range(NoiseNum):
|
||||
randX = rd.randint(0, src.shape[0] - 1)
|
||||
randY = rd.randint(0, src.shape[1] - 1)
|
||||
if rd.randint(0, 1) == 0:
|
||||
NoiseImg[randX, randY] = 0
|
||||
else:
|
||||
NoiseImg[randX, randY] = 255
|
||||
return NoiseImg
|
||||
|
||||
|
||||
def addGaussianNoise(src, means, sigma):
|
||||
NoiseImg = src / src.max()
|
||||
rows = NoiseImg.shape[0]
|
||||
cols = NoiseImg.shape[1]
|
||||
for i in range(rows):
|
||||
for j in range(cols):
|
||||
NoiseImg[i, j] = NoiseImg[i, j] + rd.gauss(means, sigma)
|
||||
if NoiseImg[i, j] < 0:
|
||||
NoiseImg[i, j] = 0
|
||||
if NoiseImg[i, j] > 1:
|
||||
NoiseImg[i, j] = 1
|
||||
NoiseImg = np.uint8(NoiseImg * 255)
|
||||
return NoiseImg
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
im = cv.imread(r"E:\OneDrive\Code\Python\2\iris.jpg", cv.IMREAD_GRAYSCALE)
|
||||
im1 = addSaltAndPepper(im, 0.1)
|
||||
im11 = cv.blur(im1, (3, 3))
|
||||
im12 = cv.medianBlur(im1, 3)
|
||||
im13 = cv.GaussianBlur(im1, (3, 3), 1)
|
||||
im2 = addGaussianNoise(im, 0, 0.1)
|
||||
im21 = cv.blur(im2, (3, 3))
|
||||
im22 = cv.medianBlur(im2, 3)
|
||||
im23 = cv.GaussianBlur(im2, (3, 3), 1)
|
||||
plt.figure()
|
||||
plt.subplot(241)
|
||||
plt.imshow(im1, cmap="gray")
|
||||
plt.title("salt and pepper")
|
||||
plt.subplot(242)
|
||||
plt.imshow(im11, cmap="gray")
|
||||
plt.title("blur")
|
||||
plt.subplot(243)
|
||||
plt.imshow(im12, cmap="gray")
|
||||
plt.title("median")
|
||||
plt.subplot(244)
|
||||
plt.imshow(im13, cmap="gray")
|
||||
plt.title("gaussian")
|
||||
plt.subplot(245)
|
||||
plt.imshow(im2, cmap="gray")
|
||||
plt.title("gaussian noise")
|
||||
plt.subplot(246)
|
||||
plt.imshow(im21, cmap="gray")
|
||||
plt.title("blur")
|
||||
plt.subplot(247)
|
||||
plt.imshow(im22, cmap="gray")
|
||||
plt.title("median")
|
||||
plt.subplot(248)
|
||||
plt.imshow(im23, cmap="gray")
|
||||
plt.title("gaussian")
|
||||
plt.show()
|
||||
@@ -0,0 +1,21 @@
|
||||
import cv2 as cv
|
||||
from matplotlib import pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
img = cv.imread(r"E:\OneDrive\Code\Python\2\iris.jpg", 0)
|
||||
lplc = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]])
|
||||
lplcEnhance = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
|
||||
ImgLplc = cv.filter2D(img, -1, lplc, borderType=cv.BORDER_DEFAULT)
|
||||
ImgLplcEnhance = cv.filter2D(img, -1, lplcEnhance, borderType=cv.BORDER_DEFAULT)
|
||||
|
||||
plt.figure()
|
||||
plt.subplot(131)
|
||||
plt.imshow(img, cmap="gray")
|
||||
plt.title("original")
|
||||
plt.subplot(132)
|
||||
plt.imshow(ImgLplc, cmap="gray")
|
||||
plt.title("laplacian")
|
||||
plt.subplot(133)
|
||||
plt.imshow(ImgLplcEnhance, cmap="gray")
|
||||
plt.title("laplacian enhanced")
|
||||
plt.show()
|
||||
BIN
Binary file not shown.
Reference in new issue
Block a user