def test_applyMask(self): expected = self.setup.getExpectedOutputMatrix(self._testMethodName) dft_image = self.setup.getInputMatrix('chaplin_dft.npy') mask = self.setup.getInputMatrix('mask.npy') self.actual = util.applyMask(dft_image, mask) self.assertTrue(self.setup.matrixEqual(expected, self.actual))
def test_getImage(self): expected = self.setup.getExpectedOutput(self._testMethodName) input = self.setup.getInputMatrix('chaplin_dft.npy') self.actual = util.getImage(input) self.assertTrue(self.setup.imagesEqual(expected, self.actual))
def test_getImage_from_noisy_dft(self): expected = self.setup.getExpectedOutput(self._testMethodName) input = self.setup.getInputMatrix('noisy_dft.npy') self.actual = util.getImage(input) #cv2.imshow("image",self.actual) #cv2.waitKey(0) self.assertTrue(self.setup.imagesEqual(expected, self.actual))
# Use this file as you wish to generate the images needed to answer the report import src.project.Utilities as util import src.project.ImageSynthesisNoise as isn import cv2 import numpy as np # image = util.loadImage('images/brain.png') matrix = util.loadMatrix('images/noisyimage.npy') rows, cols = matrix.shape mask = isn.gaussianLowpassFilter((rows, cols), cutoff=40) im = np.multiply(matrix, mask) im = util.post_process_images(util.getImage(im)) # im = np.abs(matrix) # im = util.post_process_images(im) # rows, cols = image.shape util.displayImage(im) # mask = isn.butterworthLowpassFilter((rows, cols), cutoff=40, order=7) # mask = isn.gaussianHighpassFilter((rows, cols), cutoff=150) # shift_fft = util.getDFT(image) # filtered_image_fft = np.multiply(mask, shift_fft) # filtered_image = util.post_process_images(util.getImage(filtered_image_fft)) # util.saveImage('butterworthLowpassFilter.png', filtered_image) # print(util.signalToNoise(filtered_image)) # util.displayImage(filtered_image)
def getInputImage(self, imagename): return util.loadImage(self.pathInput + imagename)
def getExpectedOutput(self, testname): self.testname = testname return util.loadImage(self.pathExpectOutput + self.testname + '.png')
# Use this file as you wish to generate the images needed to answer the report import src.project.Utilities as util import numpy as np import src.project.SelectiveImageAcquisition as sia image = util.loadImage('images/brain.png') rows, cols = image.shape print(image.shape) # code for cardiac cartesian # mask = sia.cartesianPattern((rows, cols), 0.7) mask = sia.circlePattern((rows, cols), 90) shift_fft = util.getDFT(image) filtered_image_fft = np.multiply(mask, shift_fft) filtered_image = util.post_process_images(util.getImage(filtered_image_fft)) util.displayImage(filtered_image)
# Use this file as you wish to generate the images needed to answer the report import src.project.Utilities as util import src.project.ImageSynthesisNoise as isn heart = "images/cardiac.jpg" brain = "images/brain.png" matrix = "images/noisyimage.npy" ############## Utilities ################### img = util.loadImage(heart) img2 = util.loadImage(brain) img3 = util.loadMatrix(matrix) # util.displayImage(img) # util.displayImage(img2) #util.displayImage(img) h = img.shape[0] w = img.shape[1] h1 = img2.shape[0] w1 = img2.shape[1] w2 = img3.shape[1] h2 = img3.shape[0] print(h2) print(w2) mask_size = (h, w) mask_size2 = (h1, w1) #img_copy = util.getDFT(img2)
def test_getDFT(self): expected = self.setup.getExpectedOutputMatrix(self._testMethodName) input = self.setup.getInputImage('chaplin.png') self.actual = util.getDFT(input) self.assertTrue(self.setup.matrixEqual(expected, self.actual))
def test_loadImage_jpg(self): expected = self.setup.getExpectedOutput(self._testMethodName) self.actual = util.loadImage("resources/inputs/test_loadImage.jpg") self.assertTrue(self.setup.imagesEqual(expected, self.actual))
import cv2 import numpy as np import src.project.SelectiveImageAcquisition as aqc import src.project.Utilities as util cardiac = util.loadImage("images/cardiac.jpg") normal_cardiac = util.normalizeImage(cardiac) dft_cardiac = util.getDFT(normal_cardiac) write_dft = util.writableDFT(dft_cardiac) util.saveMatrix("Cardiac_DFT.jpg", write_dft) height, width = cardiac.shape cardiac_size = np.array([height, width]) brain = util.loadImage("images/brain.png") normal_brain = util.normalizeImage(brain) dft_brain = util.getDFT(normal_brain) #util.saveMatrix("Brain_DFT.jpg", dft_brain) height, width = brain.shape brain_size = np.array([height, width]) p1mask = aqc.bandPattern(cardiac_size, 15, 128, 35) p1fmask = util.post_process_image(p1mask) util.saveImage("p1fmask.jpg", p1fmask) p1applied = util.applyMask(dft_cardiac, p1mask) p1image = util.getImage(p1applied) p1fimage = util.post_process_image(p1image) util.saveImage('p1_Masked_Image.jpg', p1fimage) p2mask1 = aqc.bandPattern(cardiac_size, 15, 128, 10) p2applied1 = util.applyMask(dft_cardiac, p2mask1)
# Use this file as you wish to generate the images needed to answer the report import src.project.Utilities as util import src.project.SelectiveImageAcquisition as sia import cv2 heart = "images/cardiac.jpg" brain = "images/brain.png" ############## Utilities ################### img2 = util.loadImage(heart) img = util.loadImage(brain) #util.displayImage(img) h = img2.shape[0] w = img2.shape[1] h1 = img.shape[0] w1 = img.shape[1] mask_size = (h, w) mask_size2 = (h1, w1) # ####### Part 1&2 ############# # angle = 35 # img_copy = util.getDFT(img) # mask = sia.bandPattern(mask_size, 10, 50, angle) # util.displayImage(mask) # # mask1 = sia.bandPattern(mask_size, 10, 50, 100) # mask2 = sia.bandPattern(mask_size, 100, 50, angle) # mask3 = sia.bandPattern(mask_size, 10, 100, angle) # mask4 = sia.bandPattern(mask_size, 150, 75, 265)
import cv2 import numpy as np import src.project.ImageSynthesisNoise as noise import src.project.SelectiveImageAcquisition as aqc import src.project.Utilities as util cardiac = util.loadImage("images/cardiac.jpg") normal_cardiac = util.normalizeImage(cardiac) dft_cardiac = util.getDFT(normal_cardiac) height, width = cardiac.shape cardiac_size = np.array([height, width]) brain = util.loadImage("images/brain.png") normal_brain = util.normalizeImage(brain) dft_brain = util.getDFT(normal_brain) height, width = brain.shape brain_size = np.array([height, width]) cutoff = np.array([5, 20, 45, 60]) order = np.array([1, 2, 3, 4]) for i in cutoff: for j in order: p6mask = noise.butterworthLowpassFilter(brain_size, i, j) p6applied = util.applyMask(dft_brain, p6mask) p6image = util.getImage(p6applied) p6fimage = util.post_process_image(p6image) filename = "p6_Masked_Image_" + str(i) + "_" + str(j) + ".jpg" snr_p6 = util.signalToNoise(brain, p6fimage) print(filename, snr_p6) util.saveImage(filename, p6fimage)