OpenCV灰度化之后图片为绿色的解决

首先需要读图片,查看图片

import cv2
img_opencv = cv2.imread('C:/Users/20752/Desktop/GraduationProject/DogFace/DogFace/OpenSourceCrop_align/0/0.0.png')# BGR
plt.figure()
plt.imshow(img_opencv)
plt.show()

图片与平时看到的不太一样,因为是BGR个格式,平时看到的是RGB格式。

之后转化为灰度图

gray_img = cv2.cvtColor(img_opencv, cv2.COLOR_BGR2GRAY)##彩色图像转为灰度图像
plt.figure()
plt.imshow(gray_img)
plt.show()

可是图片为绿色

一开始我以为是因为没有转化成RGB格式的原因,于是把图片由BGR格式转化为RGB格式发现还是一样
转化为RGB:

img_opencv = cv2.cvtColor(img_opencv, cv2.COLOR_BGR2RGB)

再转化为灰度图:

后来参考链接:https://www.jb51.net/article/201031.htm

“直接使用plt显示图像,它默认使用三通道显示图像。

解决方案:在plt.imshow()添加参数”

修改后:

即设置imshow函数的第二个参数camp为"gray"

到此这篇关于OpenCV灰度化之后图片为绿色的解决的文章就介绍到这了,更多相关OpenCV灰度化之后图片为绿色内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python opencv将图片转为灰度图的方法示例

    使用opencv将图片转为灰度图主要有两种方法,第一种是将彩色图转为灰度图,第二种是在使用OpenCV读取图片的时候直接读取为灰度图. 将彩色图转为灰度图 import cv2 import numpy as np if __name__ == "__main__": img_path = "timg.jpg" img = cv2.imread(img_path) #获取图片的宽和高 width,height = img.shape[:2][::-1] #将图片缩小

  • Opencv实现图像灰度线性变换

    本文实例为大家分享了Opencv实现图像灰度线性变换的具体代码,供大家参考,具体内容如下 通过图像灰度线性变换提高图像对比度和亮度,原图像为src,目标图像为dst,则dst(x,y) = * src(x,y) + . 不仅对单通道图像可以做灰度线性变换,对三通道图像同样可以. #include<opencv2/opencv.hpp>; #include<iostream> using namespace cv; using namespace std; int main(int

  • python3+opencv 使用灰度直方图来判断图片的亮暗操作

    1.如何让计算机自动判断一张图是否偏暗?或是判断一张图是否是处于夜晚?我们可以先把图片转换为灰度图,然后根据灰度值的分布来判断,如: 我们可以从上图看到,晚上的图片的灰度值是集中在前段的,如0~30多左右,我们再看一张比较明亮的图片: 明亮的图片的灰度直方图是比较靠后的. 因此要判断图片的亮暗,只需要统计偏暗的像素个数,再除以图片像素的总个数,得到百分比p即可,至于p大于多少即判断为暗,则可以由你自己设置.下面给出代码,此代码可以在装满图片的目录里选出偏暗的图片,然后把这些图片保存下来. 2.代

  • python-OpenCV 实现将数组转换成灰度图和彩图

    主要步骤 1.生成普通python数组(bytearray(),os.urandom()) 2.转换成numpy数组(numpy.array()) 3.通过reshape将数组转换到所需的维数 4.以图像的形式显示出来(cv.imshow()) 代码 import os import cv2 as cv import numpy as np # Make an array of 120000 random bytes randomByteArray = bytearray(os.urandom(

  • python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    在处理图像的时候经常是读取图片以后把图片转换为灰度图.作为一个刚入坑的小白,我在这篇博客记录了四种处理的方法. 首先导入包: import numpy as np import cv2 import tensorflow as tf from PIL import Image 方法一:在使用OpenCV读取图片的同时将图片转换为灰度图: img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE) print("cv2.imread(imgfile, cv2.I

  • OpenCV图像处理之常见的图像灰度变换

    1.灰度线性变换 图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的.灰度映射通常是用灰度变换曲线来进行表示.通常来说,它是将图像的像素值通过指定的线性函数进行变换,以此来增强或者来减弱图像的灰度,灰度线性变换的函数就是常见的线性函数. g(x, y) = k · f(x, y) + d 设源图像的灰度值为x,则进行灰度线性变换后的灰度值为y = kx + b (0<=y<=255),下面分别来讨论k的取值变化时线性变换的不同效果

  • OpenCV灰度化之后图片为绿色的解决

    首先需要读图片,查看图片 import cv2 img_opencv = cv2.imread('C:/Users/20752/Desktop/GraduationProject/DogFace/DogFace/OpenSourceCrop_align/0/0.0.png')# BGR plt.figure() plt.imshow(img_opencv) plt.show() 图片与平时看到的不太一样,因为是BGR个格式,平时看到的是RGB格式. 之后转化为灰度图 gray_img = cv2

  • 详解Java如何实现图像灰度化

    24位彩色图与8位灰度图 首先要先介绍一下24位彩色图像,在一个24位彩色图像中,每个像素由三个字节表示,通常表示为RGB.通常,许多24位彩色图像存储为32位图像,每个像素多余的字节存储为一个alpha值,表现有特殊影响的信息[1]. 在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值.亮度值),灰度范围为0-255[2].这样就得到一幅图片的灰度图. 几种灰度化的方法 1.分量法:使用RGB三个分量中

  • python图片灰度化处理的几种方法

    今天在学习的时候,发现scipy.misc中的imread提取图片的方法被弃用了.太生气了! 只好使用了matplotlib.pyplot中的imread了,可是当我发现他不能直接通过True来提取灰度图片时,我崩溃了 上网查了一下,了解了灰度化处理的几种方法: 首先先解释一下,彩色图片一般是由RGB组成,其实就是3个二维数组叠加而成.我们也就能看到一些彩色图片了.当R=G=B时,彩色图片就会变成一种灰度颜色,就是我们俗称的"黑白照片".所以灰度颜色的图片其实就是一个二维数组. 灰度化

  • C#彩色图片灰度化算法实例

    本文实例讲述了C#彩色图片灰度化实现方法.分享给大家供大家参考.具体方法如下: 主要功能代码如下: 复制代码 代码如下: public static Bitmap MakeGrayscale(Bitmap original) { //create a blank bitmap the same size as original Bitmap newBitmap = new Bitmap(original.Width, original.Height); //get a graphics obje

  • c#中实现图片灰度化技术详解

    去年买了本数字图像处理算法,一直都没有看,前几个星期都一直忙着工作上的活,趁这阶段悠闲点,玩一玩图片处理,这玩意还是非常有意思的. 以前我们在做Web上的用户注册时,通常都会做一个验证码,大家都知道用来防止暴力注册的,当然提到验证码大家都知道C#里面有一个Bitmap类专门用来处理图片的,好吧,这一篇我们从最简单的"图片灰度化"说起. 一:图片灰度化 我们都知道,位图是由一个一个像素点组成的,像素点可能是红色,橙色,粉色等等,这些颜色我们都知道是用RGB来表示的. 每个颜色分量都是一个

  • Python批量将图片灰度化的实现代码

    技术关键 os 模块的使用 使用 os.getcwd 获取当前路径 使用 os.listdir()获取文件列表 使用 os.path.splitext() 分割文件名和扩展名 使用 PLI 的 convert('L') 方法将图片转为灰度 代码实现 from PIL import Image import os path = os.getcwd() # 获取当前路径 file_list = os.listdir() for file in file_list: filename = os.pat

  • 基于Qt OpenCV的图像灰度化像素操作详解

    效果图 实现代码 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<opencv2/opencv.hpp> using namespace cv; QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *

  • Python图像运算之图像点运算与灰度化处理详解

    目录 一.图像点运算概念 二.图像灰度化处理 三.基于像素操作的图像灰度化处理 1.最大值灰度处理方法 2.平均灰度处理方法 3.加权平均灰度处理方法 四.总结 一.图像点运算概念 图像点运算(Point Operation)指对于一幅输入图像,将产生一幅输出图像,输出图像的每个像素点的灰度值由输入像素点决定.点运算实际上是灰度到灰度的映射过程,通过映射变换来达到增强或者减弱图像的灰度.还可以对图像进行求灰度直方图.线性变换.非线性变换以及图像骨架的提取.它与相邻的像素之间没有运算关系,是一种简

随机推荐