python代码:
from skimage import data, io
from matplotlib import pyplot as plt
import numpy as np
import math
image = io.imread('hua.png')
r = image[:, :, 0]
g = image[:, :, 1]
b = image[:, :, 2]
r1 = r[128:255, 85:169]
r1_u = np.mean(r1)
r1_d = 0.0
for i in range(r1.shape[0]):
for j in range(r1.shape[1]):
r1_d = r1_d+(r1[i, j]-r1_u)*(r1[i, j]-r1_u)
r1_d = math.sqrt(r1_d/r1.shape[0]/r1.shape[1])
r2 = np.zeros(r.shape, dtype='uint8')
for i in range(r.shape[0]):
for j in range(r.shape[1]):
if r[i, j] >= (r1_u - 1.25 * r1_d) and r[i, j] <= (r1_u +1.25 * r1_d):
r2[i, j] = 1
image2 = np.zeros(image.shape, dtype='uint8')
for i in range(r.shape[0]):
for j in range(r.shape[1]):
if r2[i, j] == 1:
image2[i, j, :] = image[i, j, :]
plt.figure()
plt.axis('off')
plt.imshow(image) # 显示原始 RGB 图像
plt.figure()
plt.axis('off')
plt.imshow(r, cmap='gray') # 显示 R 分量图像
plt.figure()
plt.axis('off')
plt.imshow(g, cmap='gray') # 显示 G 分量图像
plt.show()
显示结果: