San*_*ram 10 python image image-processing scikit-image imread
我非常擅长skimage使用Python中的scikit-image()库进行图像处理(几分钟前开始!).我以前imread读过一个图像文件numpy.ndarray.该阵列是3维的,其中第三维的尺寸是3(即,对于图像的红色,绿色和蓝色分量中的每一个,一个).
rgb_image = imread("input_rgb_image.jpg")
rgb_image.shape # gives (1411L, 1411L, 3L)
Run Code Online (Sandbox Code Playgroud)
我试图将绿色通道提取为:
green_image = rgb_image[:,:,1]
Run Code Online (Sandbox Code Playgroud)
但是当我将这个图像矩阵写入输出文件时:
imsave("green_output_image.jpg",green_image)
Run Code Online (Sandbox Code Playgroud)
我得到的图像看起来并不真实!
ray*_*ica 19
你提取的只是一个通道,它会显示每个像素有多少绿色.这最终将被视为灰度图像,其中较暗的像素表示在那些点处没有太多"绿色",较亮的像素表示在这些点处存在大量的"绿色".
如果我正在解释你说的正确,你希望可视化每种颜色的"绿色".在这种情况下,将红色和蓝色通道都设置为零,并保持绿色通道不变.
所以:
green_image = rgb_image.copy() # Make a copy
green_image[:,:,0] = 0
green_image[:,:,2] = 0
Run Code Online (Sandbox Code Playgroud)
请注意,我已经制作了原始图像的副本并更改了频道而不是修改原始图像以备不时之需.但是,如果您只想提取绿色通道并将其视为灰度图像,如上所述,那么使用green_image变量设置完成上面所做的操作就可以了.
| 归档时间: |
|
| 查看次数: |
19633 次 |
| 最近记录: |