编写一段代码实现给图片(coffee.img)添加高斯噪音后再将其恢复
时间: 2023-06-07 16:08:42 浏览: 49
以下是可以使用Python实现的代码示例:
```python
import cv2
import numpy as np
# 读取图片
img = cv2.imread("coffee.img")
# 添加高斯噪音
mean = 0
var = 50 # 噪声方差
sigma = var ** 0.5
gaussian = np.random.normal(mean, sigma, img.shape)
img_gaussian = img.astype(np.float64) + gaussian
img_gaussian = np.clip(img_gaussian, 0, 255).astype(np.uint8)
# 显示添加噪音后的图片
cv2.imshow("Gaussian noise image", img_gaussian)
cv2.waitKey()
# 恢复原始图片
img_recover = cv2.GaussianBlur(img_gaussian, (5,5), 0)
# 显示恢复后的图片
cv2.imshow("Recovered image", img_recover)
cv2.waitKey()
# 保存恢复后的图片
cv2.imwrite("coffee_recover.png", img_recover)
```
运行代码后,会弹出两个窗口。第一个窗口显示添加了高斯噪音后的图片,第二个窗口显示恢复后的图片。通过调整var的值可以控制噪声强度的大小。
相关问题
用java实现Beverage、Tea、Coffee、Beer类并给出简单的测试
Beverage类:
```
public abstract class Beverage {
protected String description;
public String getDescription() {
return description;
}
public abstract double cost();
}
```
Tea类:
```
public class Tea extends Beverage {
public Tea() {
description = "Tea";
}
public double cost() {
return 1.5;
}
}
```
Coffee类:
```
public class Coffee extends Beverage {
public Coffee() {
description = "Coffee";
}
public double cost() {
return 2.0;
}
}
```
Beer类:
```
public class Beer extends Beverage {
public Beer() {
description = "Beer";
}
public double cost() {
return 3.5;
}
}
```
测试:
```
public class Test {
public static void main(String[] args) {
Beverage tea = new Tea();
System.out.println(tea.getDescription() + " cost: " + tea.cost());
Beverage coffee = new Coffee();
System.out.println(coffee.getDescription() + " cost: " + coffee.cost());
Beverage beer = new Beer();
System.out.println(beer.getDescription() + " cost: " + beer.cost());
}
}
```
输出:
```
Tea cost: 1.5
Coffee cost: 2.0
Beer cost: 3.5
```
请尝试实现Beverage、Tea、Coffee、Beer类并给出简单的测试
Beverage类:
```
class Beverage:
def __init__(self, name, price):
self.name = name
self.price = price
def get_name(self):
return self.name
def get_price(self):
return self.price
def __str__(self):
return f"{self.name} - ${self.price:.2f}"
```
Tea类:
```
class Tea(Beverage):
def __init__(self, name, price, type):
super().__init__(name, price)
self.type = type
def get_type(self):
return self.type
def __str__(self):
return f"{self.name} - {self.type} - ${self.price:.2f}"
```
Coffee类:
```
class Coffee(Beverage):
def __init__(self, name, price, size):
super().__init__(name, price)
self.size = size
def get_size(self):
return self.size
def __str__(self):
return f"{self.name} - {self.size} - ${self.price:.2f}"
```
Beer类:
```
class Beer(Beverage):
def __init__(self, name, price, alcohol_content):
super().__init__(name, price)
self.alcohol_content = alcohol_content
def get_alcohol_content(self):
return self.alcohol_content
def __str__(self):
return f"{self.name} - {self.alcohol_content}% - ${self.price:.2f}"
```
测试:
```
tea = Tea("Green Tea", 3.5, "Loose Leaf")
print(tea.get_name()) # Green Tea
print(tea.get_type()) # Loose Leaf
print(tea.get_price()) # 3.5
print(tea) # Green Tea - Loose Leaf - $3.50
coffee = Coffee("Latte", 4.2, "Medium")
print(coffee.get_name()) # Latte
print(coffee.get_size()) # Medium
print(coffee.get_price()) # 4.2
print(coffee) # Latte - Medium - $4.20
beer = Beer("IPA", 5.8, 6.5)
print(beer.get_name()) # IPA
print(beer.get_alcohol_content()) # 6.5
print(beer.get_price()) # 5.8
print(beer) # IPA - 6.5% - $5.80
```