标签: grayscale

以灰度绘制 UIView?

有没有办法以灰度绘制给定的 UIView (及其子视图)?

我正在尝试采用视图层次结构并使其看起来已禁用,而无需覆盖图像或切换用于绘制层次结构中每个 UIView 的图像。

filter uiview grayscale ios

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

matplotlib,使用从 0.(白色)到 1.(黑色)的数字沿灰度设置线条的颜色

我一直在尝试按照此处的说明使用从0.(白色)到1.(黑色)的浮点数沿灰度设置多条线的颜色。该函数line.set_color()接受浮点数,但是当我执行以下操作时会出现以下错误plt.show()

ValueError: to_rgba: Invalid rgba arg "1.0"
to_rgb: Invalid rgb arg "1.0"
cannot convert argument to rgb sequence
Run Code Online (Sandbox Code Playgroud)

这个答案中解释了如何使用plt.cm.RdYlBu(i). 灰度有什么等价物吗?

python matplotlib grayscale

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

在OpenCV中将HSV转换为灰度

我是OpenCV的新手.我正在学习分水岭算法的分段,我有一个问题.

我必须使用Watershed将图像颜色转换为图像灰度.当我使用色彩空间BGR,没有问题,但空间HSV,我不确定下面的代码是否正确.

Mat im = imread("./Image/118035.jpg", CV_LOAD_IMAGE_COLOR);

Mat imHSV;
cvtColor(im, imHSV, CV_BGR2HSV);
imshow("HSV", imHSV);

cvtColor(imHSV, imHSV, CV_BGR2GRAY);
imshow("HSV to gray", imHSV);


imshow("BGR", im);
cvtColor(im, im, CV_BGR2GRAY);
imshow("BGR to gray", im);
Run Code Online (Sandbox Code Playgroud)

我认为,在从BGR转换为HSV后,Hue =蓝色,饱和度=绿色,值=红色,我可以使用运算符BGR2GRAY从HSV转换为灰度.

2图像输出不同,我可以将HSV转换为灰度吗?

//与彩色空间LAB相似吗?

opencv hsv grayscale

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

如何使用PIL将灰度转换为假色?

我似乎无法弄清楚如何使用我的灰度函数并将其更改为给我假颜色。我知道我需要将每种颜色(R、G、B)分成多个范围,然后根据每种颜色的范围分配颜色。有谁知道这是如何工作的?

def grayscale(pic):
    (width,height) = pic.size
    for y in range (height):
        for x in range(width):
            pix = cp.getpixel((x,y))
            (r, g, b) = pix
            avg = (r + g + b)//3
            newPix = (avg, avg, avg)
            cp.putpixel((x,y),newPix)
    return cp
Run Code Online (Sandbox Code Playgroud)

python colors image-processing grayscale python-imaging-library

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

以灰度保存画布

我想知道是否可以在HTML5中使用彩色画布,然后将其保存为黑白(灰度)PNG,同时单击保存按钮.我设法将画布保存为PNG,这太棒了!但是我想添加灰度功能,而不必使用Illustrator等程序自己更改它.画布有移动粒子顺便说一句.(我不确定这是否有任何影响)

谢谢〜!

function download(){
    var dt = c.toDataURL('image/png');
    this.href = dt; 
}; 
downloadlink.addEventListener('click', download, false); 
Run Code Online (Sandbox Code Playgroud)

html5 canvas save grayscale html5-canvas

4
推荐指数
2
解决办法
3912
查看次数

如何在 JavaScript 中对画布图像进行灰度处理?

我在 HTML5 画布中有一个图像,大小为 28x28 像素。我使用以下代码将画布的 imageData 作为 RGBA(红色、绿色、蓝色、alpha)值的数组:

canvas = document.getElementById('canvas');
ctx = canvas.getContext("2d");
imgData = ctx.getImageData(0, 0, 28, 28);
Run Code Online (Sandbox Code Playgroud)

现在我想对图像进行灰度处理,以便获得一个包含 784 个值(28x28 像素)的数组,其中每个像素都有一个值(而不是四个)。

我发现了很多不同的灰度公式,有些是乘以 rgb 值,有些只是计算平均值 - 我真的不知道使用它们中的哪一个......

我也坚持获得 784 个值——它总是 3136(因为有 4 个通道)......

提前致谢!

html javascript canvas grayscale imagedata

4
推荐指数
2
解决办法
5278
查看次数

C# - 转换8位或16位灰度原始像素数据

我需要能够将8位或16位灰度像素数据转换为.NET框架可以支持的文件格式.

我可用的数据是宽度,高度,方向(左下角)和像素格式为4096灰度(12位分辨率),每像素2个字节.

因此,例如,每个像素的范围从0到4096,并且每个像素是2个字节.

我已经尝试使用PixelFormat.Format16bppGrayScale和Bitmap构造函数,它会引发GDI +异常.我读过的所有内容都说不支持这种格式,并且MSDN错误.

我想将此像素缓冲区转换为.NET位图格式(如Format32bppArgb),尽可能减少图像质量损失.

谁知道怎么样?

c# pixel bitmap 16-bit grayscale

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

如何使用图像Magick将png灰度图像从comand线转换为RGB

我正在尝试使用以下命令将png灰度图像转换为RGB png图像。

convert HopeLoveJoy.png -size 1x1 -fill "rgba(0%,1%,2%,0)" -draw "color 511,511 point" out_test.png 
Run Code Online (Sandbox Code Playgroud)

通过使用上面的上述命令,我可以进行转换,但是图像的颜色正在改变。命令中有什么问题吗?任何帮助表示赞赏。提前致谢。

rgb png imagemagick grayscale

3
推荐指数
1
解决办法
2412
查看次数

将图像转换为索引的2位灰度BMP

首先,我的问题与我如何将图像转换为每个像素2位不同?不幸的是,它的解决方案不适用于我的情况...

我需要将图像转换为每像素2位灰度BMP格式。样本图像具有以下属性:

Color Model: RGB
Depth: 4
Is Indexed: 1
Dimension: 800x600
Size: 240,070 bytes (4 bits per pixel but only last 2 bits are used to identify the gray scales as 0/1/2/3 in decimal or 0000/0001/0010/0011 in binary, plus 70 bytes BMP metadata or whatever)
Run Code Online (Sandbox Code Playgroud)

样品

样本BMP图像开始部分的十六进制值: 样本图像的头部

3代表图像开始处的白色像素。再往下是代表黑色,深灰色和浅灰色的0、1和2: 样本图像的中间部分

使用以下命令,

convert pic.png -colorspace gray +matte -depth 2 out.bmp
Run Code Online (Sandbox Code Playgroud)

我可以获得视觉上正确的4级灰度图像,但是每个像素的深度或大小错误:

Color Model: RGB
Depth: 8 (expect 4)
Dimension: 800x504
Size: 1,209,738 bytes (something like 3 bytes per pixel, …
Run Code Online (Sandbox Code Playgroud)

imagemagick bmp grayscale

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

如何确定C#或VB.NET中的图像是否为灰度?

首先


首先,请注意,给出的答复这个问题将不会对所有的灰度影像,同时也注意到,在接受答案这个其他问题并不能解释所有如何确定是否图像灰度,但反正它不符合我的需求,因为它似乎只涵盖JPEG和TIFF图像,并假设它们将具有EXIF元数据及其中的必需字段.(我无法理解为什么人们确定我所链接的第一个问题是我所链接的第二个问题的"重复"......)

最后,最后接受的答案缺乏一个工作和演示的代码示例,但无论如何都无济于事,因为作者引用了使用Bitmap.GetPixel()函数的缓慢和弃用的方法,但我们应该使用Bitmap.LockBits()函数来获得更高的性能优势.

情景


我有一些GIF,JPG,BMP和PNG图像,我需要确定它们是灰度图像还是不是灰度图像.对于GIF文件,我只关心分析第一帧.

我对图像的数据结构,像素颜色位和那些东西没有多少经验/意识,我只知道非常基础.所以,如果我错过了重要的信息,我应该提供我将要测试的图像的任何信息,那么请问我,但无论如何考虑到我想为"所有"类型的图像创建一个通用的解决方案,好吧,不是全部,但至少这些格式:BMP,JPG,GIF和PNG.

在我提到的那些图像格式中,我的最高优先级是GIF图像,这意味着如果能够确定GIF图像是否为灰度的方法不能用于分析其他类型图像的方法,那么我将接受仅涵盖GIF图像像素处理的答案.


我认为我的需求很明确:如何确定图像是否为灰度?

如果它根本不清楚,为了避免我可以做到你可以浪费你的时间:

  • 该解决方案必须至少适用于GIF图像.(记住,我只关心GIF中的第一帧),但如果提供的解决方案对BMP,JPG和PNG也有效,那么它当然总是更好.

  • 该解决方案必须关注PixelFormat.Format32bppRgb灰度图像.

  • 解决方案一定不能使用Bitmap.GetPixel()功能,必须使用它Bitmap.LockBits().

  • 我不是要求解释,伪代码也没有关于图像结构/格式/像素等文档的外部链接,我要求一个有效的代码示例(当然,如果作者覆盖图像结构/像素技术,总是更好提供除代码之外的基本解释).

  • 在C#或VB.NET中,选择无关紧要.

研究


这就是我到目前为止所做的.我试图理解确定图像是否为灰度的点,我也不确定我的bytesPerPixel变量条件是否合适以及我的RGB值分配是否正确,因为我从一开始就说过我不是图像处理专家所以我可能错过了重要的事情......

VB.NET

Public Shared Function IsImageGrayScale(ByVal img As Image) As Boolean

    Select Case img.PixelFormat

        Case PixelFormat.Format16bppGrayScale
            Return True

        Case Else
            Dim pixelCount As Integer = (img.Width * img.Height)
            Dim bytesPerPixel As Integer = (Image.GetPixelFormatSize(img.PixelFormat) \ 8)

            If (bytesPerPixel <> 3) AndAlso (bytesPerPixel <> 4) Then
                Throw …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net image-processing grayscale

3
推荐指数
1
解决办法
1283
查看次数