Pattern recognition
Pattern recognition
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use("TkAgg")
def gaussian(x, mu, sigma):
return (1 / (np.sqrt(2 * np.pi * sigma ** 2))) * np.exp(-((x - mu) ** 2) / (2 * sigma ** 2))
OUTPUT:
Program 2
import numpy as np
def gradient(x):
return 2 * x
def gradient_descent(gradient, start, learn_rate, n_iter=50, tolerance=1e-06):
vector = start
for _ in range(n_iter):
diff = -learn_rate * gradient(vector)
if np.all(np.abs(diff) <= tolerance):
break
vector += diff # Update the parameter
return vector
OUTPUT:
Program 3
# SVM Model
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
svm_pred = svm.predict(X_test)
svm_acc = accuracy_score(y_test, svm_pred)
# CNN Model
X_train_reshaped = X_train.reshape((X_train.shape[0], 4, 1, 1))
X_test_reshaped = X_test.reshape((X_test.shape[0], 4, 1, 1))
cnn = models.Sequential([
layers.Conv2D(32, (2, 2), activation='relu', input_shape=(4, 1, 1)),
layers.Flatten(),
layers.Dense(3, activation='softmax')
])
cnn.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
cnn.fit(X_train_reshaped, y_train, epochs=5, verbose=1)
cnn_acc = cnn.evaluate(X_test_reshaped, y_test, verbose=0)[1]
# Output
# SVM Model
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
svm_pred = svm.predict(X_test)
svm_acc = accuracy_score(y_test, svm_pred)
# CNN Model
X_train_reshaped = X_train.reshape((X_train.shape[0], 4, 1, 1))
X_test_reshaped = X_test.reshape((X_test.shape[0], 4, 1, 1))
cnn = models.Sequential([
layers.Conv2D(32, (2, 2), activation='relu', input_shape=(4, 1, 1)),
layers.Flatten(),
layers.Dense(3, activation='softmax')
])
cnn.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
cnn.fit(X_train_reshaped, y_train, epochs=5, verbose=1)
cnn_acc = cnn.evaluate(X_test_reshaped, y_test, verbose=0)[1]
# Output
print(f"SVM Accuracy: {svm_acc * 100:.2f}%")
print(f"CNN Accuracy: {cnn_acc * 100:.2f}%")
Output:
SVM Accuracy: 96.67% CNN Accuracy: 100.00%
Program 5
Output:
Program 6
import cv2
import numpy as np
# Load image
img = cv2.imread("example.jpg")
# Display results
cv2.imshow("Scaled Image", scaled_img)
cv2.imshow("Rotated Image", rotated_img)
cv2.imshow("Translated Image", translated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output:
Program 7
import matplotlib
matplotlib.use("TkAgg")
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread("example.jpg")
if img is None:
print("Error: Image not loaded. Check the image path.")
exit()
pts1 = np.float32([[100, 100], [400, 100], [100, 400], [400, 400]])
pts2 = np.float32([[50, 50], [450, 50], [50, 450], [450, 450]])
M = cv2.getPerspectiveTransform(pts1, pts2)
perspective_img = cv2.warpPerspective(img, M, (500, 500))
perspective_img_rgb = cv2.cvtColor(perspective_img, cv2.COLOR_BGR2RGB)
plt.imshow(perspective_img_rgb)
plt.axis('off')
plt.show()
Output:
Program 8
import cv2
import numpy as np
img = cv2.imread('checkerboard1.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
checkerboard_size = (9, 6) # Example: 9x6 inner corners
ret, corners = cv2.findChessboardCorners(gray, checkerboard_size, None)
if ret:
cv2.drawChessboardCorners(img, checkerboard_size, corners, ret)
cv2.imshow('Corners Detected', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
else:
print("Corners not detected")
img = cv2.imread('checkerboard1.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.int0(corners)
for corner in corners:
x, y = corner.ravel()
cv2.circle(img, (x, y), 3, 255, -1)
Output:
Program 9
import cv2
import numpy as np
img1 = cv2.imread("checkerboard1.jpg", 0)
img2 = cv2.imread("example.jpg", 0)
orb = cv2.ORB_create()
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(des1, des2)
print("Fundamental Matrix:", F)
Output:
import cv2
import numpy as np
checkerboard_size = (9, 6)
obj_points = np.zeros((np.prod(checkerboard_size), 3), dtype=np.float32)
obj_points[:, :2] = np.indices(checkerboard_size).T.reshape(-1, 2)
cmera_matrix = np.array([[1.0, 0, 0], [0, 1.0, 0], [0, 0, 1]]) # Placeholder matrix
dist_coeffs = np.zeros((4, 1))
img = cv2.imread('checkerboard0.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, checkerboard_size, None)
if ret:
cv2.cornerSubPix(gray, corners, (11, 11), (-1, -1),
criteria=(cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30,
0.001))
cv2.drawChessboardCorners(img, checkerboard_size, corners, ret)
img_points = corners.reshape(-1, 2)
ret, rvec, tvec = cv2.solvePnP(obj_points, img_points, camera_matrix, dist_coeffs)
if ret:
axis = np.float32([[0, 0, 0], [3, 0, 0], [0, 3, 0], [0, 0, 3]]).reshape(-1, 3)
img_points, _ = cv2.projectPoints(axis, rvec, tvec, camera_matrix, dist_coeffs)
img = cv2.line(img, tuple(img_points[0].ravel()), tuple(img_points[1].ravel()), (0, 0, 255), 5)
img = cv2.line(img, tuple(img_points[0].ravel()), tuple(img_points[2].ravel()), (0, 255, 0), 5)
img = cv2.line(img, tuple(img_points[0].ravel()), tuple(img_points[3].ravel()), (255, 0, 0), 5)
Output: