小编J. *_*vez的帖子

如何将 RGB 图像(3 通道)转换为灰度图像(1 通道)并保存?

在处理深度学习项目时,我有很多不需要颜色的图像。我救了他们:

import matplotlib.pyplot as plt

plt.imsave('image.png', image, format='png', cmap='gray')
Run Code Online (Sandbox Code Playgroud)

然而后来当我检查图像的形状时,结果是:

import cv2
img_rgb = cv2.imread('image.png')
print(img_rgb.shape)
(196,256,3)
Run Code Online (Sandbox Code Playgroud)

因此,即使我查看的图像是灰度图像,我仍然有 3 个颜色通道。我意识到我必须进行一些代数运算才能将这 3 个通道转换为 1 个单通道。

我已经尝试过线程“如何在 Python 中将 RGB 图像转换为灰度? ”中描述的方法,但我很困惑。

例如,何时使用以下方法进行转换:

from skimage import color
from skimage import io
img_gray = color.rgb2gray(io.imread('image.png'))
plt.imsave('image_gray.png', img_gray, format='png')
Run Code Online (Sandbox Code Playgroud)

但是,当我加载新图像并检查其形状时:

img_gr = cv2.imread('image_gray.png')
print(img_gr.shape)
(196,256,3)
Run Code Online (Sandbox Code Playgroud)

我尝试了该线程上的其他方法,但结果是相同的。我的目标是获得形状为 (196,256,1) 的图像,因为卷积神经网络的计算强度会大大降低。

任何帮助,将不胜感激。

python rgb image grayscale python-3.x

5
推荐指数
1
解决办法
2万
查看次数

Pandas:根据某些列的字符串值将数据帧拆分为单独的数据帧

还没有找到任何可以应用于我的问题的答案,所以这里是:

我有一个图像的初始数据框,我想根据该图像的描述将其分成两个,这是“描述”列中的一个字符串。

我的问题是并非所有的描述都是一样的。这是我的意思的一个例子:

在此处输入图片说明

一些图像被加速,而另一些则没有。这就是我想用来分割数据集的标准。

然而,即使是加速和非加速的图像描述也各不相同。

我的策略是将每个包含“ACC”的字符串(这将涵盖所有加速图像)重命名为“ACCELERATED IMAGE”。

然后我可以这样做:

df_Accl = df[df.Description == "ACCELERATED IMAGE"]
df_NonAccl = df[df.Description != "ACCELERATED IMAGE"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?这只是我想出的一个策略,如果有任何其他更有效的方法可以随意说出来。

python string dataframe pandas

4
推荐指数
1
解决办法
1382
查看次数

标签 统计

python ×2

dataframe ×1

grayscale ×1

image ×1

pandas ×1

python-3.x ×1

rgb ×1

string ×1