These cards can be redeemed to craft any card in the game if players have the wildcard of correlating rank: Gray = Common Cyan = Uncommon Gold = Rare Red = Mythic Rare Gems are rarer, unless players are willing to fork over some real-world money (in the form of widely hated microtransactions)

This is the card This is what i do: Read the card and convert it to grayscale import cv2 import numpy as np import pytesseract from PIL import Image frame = cv2.imread(" ") imgray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) Get the outer contour and resize the image edged = cv2.Canny(imgray, 30, 200) contours, hierarchy = cv2.findContours(edged, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) if len(contours) != 0: # find the biggest countour (c) by the area c = max(contours, key=cv2.contourArea) x, y, w, h = cv2.boundingRect(c) # draw the biggest contour (c) in green # cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) crop_frame = frame[y: y + h, x: x + w] crop_frame = cv2.resize(crop_frame, (450, 600), interpolation=cv2.INTER_AREA) Cut the bottom right corner height, width, channels = crop_frame.shape bottom_right_corner = crop_frame[560: 600, 300: 450] Read the bottom corner text with pytesseract ocr gray = cv2.cvtColor(bottom_right_corner, cv2.COLOR_BGR2GRAY) image_ = Image.fromarray(gray) text = pytesseract.image_to_string(image_) Final code import cv2 import numpy as np import pytesseract from PIL import Image frame = cv2.imread(" ") imgray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) edged = cv2.Canny(imgray, 30, 200) contours, hierarchy = cv2.findContours(edged, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) if len(contours) != 0: # find the biggest countour (c) by the area c = max(contours, key=cv2.contourArea) x, y, w, h = cv2.boundingRect(c) # draw the biggest contour (c) in green # cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) crop_frame = frame[y: y + h, x: x + w] crop_frame = cv2.resize(crop_frame, (450, 600), interpolation=cv2.INTER_AREA) height, width, channels = crop_frame.shape bottom_right_corner = crop_frame[560: 600, 300: 450] gray = cv2.cvtColor(bottom_right_corner, cv2.COLOR_BGR2GRAY) cv2.imshow("gray", gray) cv2.waitKey(0) image_ = Image.fromarray(gray) text = pytesseract.image_to_string(image_) print("Text: ", text)

If a creature died this turn, you gain 8 life instead
Creature - Druid Phyrexian Elesh Norn Vigilance Whenever a source an opponent controls deals damage to you or a permanent you control, that source's controller loses 2 life unless they pay
Read More: Should There Be A Witch Creature Type