Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- prog = readline("Hvilket program vil du køre? (1/2/3/4) \n 1. Gaussisk støj. \n 2. Salt og peber støj.\n 3. gennesnitsudglatning. \n 4. Medianudglatning.")
- if(prog == 1){
- library("EBImage")
- select_image = readline("Image: ")
- color = readline("Color? y/n ")
- obama = readImage(select_image)
- image_data = as.array(obama)
- noisy_obama = obama
- display(obama)
- deviation = seq(0, 1, 0.1)
- x_pixels = dim(image_data)[1]
- y_pixels = dim(image_data)[2]
- if(color == "y")
- z_pixels = dim(image_data)[3]
- total_pixels = x_pixels*y_pixels
- for(i in 1:length(deviation)){
- rng = rnorm(total_pixels, mean = 0, sd = deviation[i])
- for(k in 1:y_pixels){
- for(j in 1:x_pixels){
- if(color == "y"){
- image_data[j,k, 1] = image_data[j,k, 1] + rng[j+(k-1)*x_pixels]
- image_data[j,k, 2] = image_data[j,k, 2] + rng[j+(k-1)*x_pixels]
- image_data[j,k, 3] = image_data[j,k, 3] + rng[j+(k-1)*x_pixels]
- }else{
- image_data[j,k] = image_data[j,k] + rng[j+(k-1)*x_pixels]
- }
- }
- }
- if(color == "y"){
- imageData(noisy_obama)[1:x_pixels,1:y_pixels, 1:z_pixels] =
- image_data[1:x_pixels,1:y_pixels, 1:z_pixels]
- }else{
- imageData(noisy_obama)[1:x_pixels,1:y_pixels] =
- image_data[1:x_pixels,1:y_pixels]
- }
- print(i)
- file_name = paste("Image - gaussisk stoj (std=",deviation[i],").jpeg")
- writeImage(noisy_obama, file_name)
- }
- }else if(prog == 2){
- library("EBImage")
- select_image = readline("Image")
- color = readline("Color? y/n")
- obama = readImage(select_image)
- image_data = as.array(obama)
- noisy_obama = obama
- display(obama)
- x_pixels = dim(image_data)[1]
- y_pixels = dim(image_data)[2]
- total_pixels = x_pixels*y_pixels
- rng = runif(total_pixels, 0 , 1)
- for(i in 1:7){
- styrke = 0.05*i
- if(color == "n"){
- for(k in 1:y_pixels){
- for(j in 1:x_pixels){
- if(rng[j+(k-1)*x_pixels] < styrke){
- image_data[j,k] = 0
- }else if(rng[j+(k-1)*x_pixels] > 1-styrke){
- image_data[j,k] = 1
- }
- }
- }
- }else{
- for(k in 1:y_pixels){
- for(j in 1:x_pixels){
- if(rng[j+(k-1)*x_pixels] < styrke){
- image_data[j,k,1] = 0
- image_data[j,k,2] = 0
- image_data[j,k,3] = 0
- }else if(rng[j+(k-1)*x_pixels] > 1-styrke){
- image_data[j,k,1] = 1
- image_data[j,k,2] = 1
- image_data[j,k,3] = 1
- }
- }
- }
- }
- if(color == "n"){
- imageData(noisy_obama)[1:x_pixels,1:y_pixels] =
- image_data[1:x_pixels,1:y_pixels]
- }else{
- imageData(noisy_obama)[1:x_pixels,1:y_pixels, 1:3] =
- image_data[1:x_pixels,1:y_pixels, 1:3]
- }
- print(i)
- file_name = paste("Billede - salt (std=",styrke,").jpeg")
- writeImage(noisy_obama, file_name)
- }
- display(noisy_obama)
- }else if(prog == 3){
- library("EBImage")
- color = readline("Color? y/n")
- select_image = readline("Image: ")
- radius = readline("Hvor lang skal en kernel være?")
- radius = as.double(radius)
- radius = (radius-1)/2
- obama = readImage(select_image)
- image_data = as.array(obama)
- noisy_obama = obama
- display(obama)
- deviation = seq(0, 1, 0.1)
- x_pixels = dim(image_data)[1]
- y_pixels = dim(image_data)[2]
- for(k in 1:y_pixels){
- for(j in 1:x_pixels){
- if(color == "n"){
- kernel = 0
- n = 0
- for(t in 1:(1+2*radius)){
- for(y in 1:(1+2*radius)){
- if(k - radius+t > 0 & j - radius+y > 0 & k - radius+t <= y_pixels & j - radius+y <= x_pixels){
- n = n+1
- kernel[n] = image_data[j-radius+y,k-radius+t]
- }
- }
- }
- kernel = mean(kernel)
- image_data[j,k] = kernel
- }else{
- kernel1= 0
- kernel2= 0
- kernel3= 0
- n = 0
- for(t in 1:(1+2*radius)){
- for(y in 1:(1+2*radius)){
- if(k - radius+t > 0 & j - radius+y > 0 & k - radius+t <= y_pixels & j - radius+y <= x_pixels){
- n = n+1
- kernel1[n] = image_data[j-radius+y,k-radius+t,1]
- kernel2[n] = image_data[j-radius+y,k-radius+t,2]
- kernel3[n] = image_data[j-radius+y,k-radius+t,3]
- }
- }
- }
- kernel1 = mean(kernel1)
- kernel2 = mean(kernel2)
- kernel3 = mean(kernel3)
- image_data[j,k,1] = kernel1
- image_data[j,k,2] = kernel2
- image_data[j,k,3] = kernel3
- }
- }
- }
- if(color == "n"){
- imageData(noisy_obama)[1:x_pixels,1:y_pixels] =
- image_data[1:x_pixels,1:y_pixels]
- }else{
- imageData(noisy_obama)[1:x_pixels,1:y_pixels, 1:3] =
- image_data[1:x_pixels,1:y_pixels, 1:3]
- }
- print("done")
- file_name = paste("Udglatgennemsnit.jpeg")
- writeImage(noisy_obama, file_name)
- }else if(prog == 4){
- library("EBImage")
- color = readline("Color? y/n")
- select_image = readline("Image: ")
- radius = readline("Hvor lang skal en kernel være?")
- radius = as.double(radius)
- radius = (radius-1)/2
- obama = readImage(select_image)
- image_data = as.array(obama)
- noisy_obama = obama
- display(obama)
- deviation = seq(0, 1, 0.1)
- x_pixels = dim(image_data)[1]
- y_pixels = dim(image_data)[2]
- for(k in 1:y_pixels){
- for(j in 1:x_pixels){
- if(color == "n"){
- kernel = 0
- n = 0
- for(t in 1:(1+2*radius)){
- for(y in 1:(1+2*radius)){
- if(k - radius+t > 0 & j - radius+y > 0 & k - radius+t <= y_pixels & j - radius+y <= x_pixels){
- n = n+1
- kernel[n] = image_data[j-radius+y,k-radius+t]
- }
- }
- }
- kernel = median(kernel)
- image_data[j,k] = kernel
- }else{
- kernel1= 0
- kernel2= 0
- kernel3= 0
- n = 0
- for(t in 1:(1+2*radius)){
- for(y in 1:(1+2*radius)){
- if(k - radius+t > 0 & j - radius+y > 0 & k - radius+t <= y_pixels & j - radius+y <= x_pixels){
- n = n+1
- kernel1[n] = image_data[j-radius+y,k-radius+t,1]
- kernel2[n] = image_data[j-radius+y,k-radius+t,2]
- kernel3[n] = image_data[j-radius+y,k-radius+t,3]
- }
- }
- }
- kernel1 = median(kernel1)
- kernel2 = median(kernel2)
- kernel3 = median(kernel3)
- image_data[j,k,1] = kernel1
- image_data[j,k,2] = kernel2
- image_data[j,k,3] = kernel3
- }
- }
- }
- if(color == "n"){
- imageData(noisy_obama)[1:x_pixels,1:y_pixels] =
- image_data[1:x_pixels,1:y_pixels]
- }else{
- imageData(noisy_obama)[1:x_pixels,1:y_pixels, 1:3] =
- image_data[1:x_pixels,1:y_pixels, 1:3]
- }
- print("done")
- file_name = paste("Udglatmedian.jpeg")
- writeImage(noisy_obama, file_name)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement