标签: imaging

如何检查图像是否包含面部并且它是否合理可见

我不确定这是否可以解决,但我还是会问.

在我的公司,我们处理大规模的招生营,5到10人的小团队去一个村庄并招募人员.登记涉及输入一些数据,捕获指纹并使用网络摄像头拍摄最终用户的大头照.可以理解的是,注册是由我们将活动外包给的外部供应商完成的.

由于没有记录非常大,尝试手动验证记录会使整个过程变慢.所以我们尽可能多地自动化,除了一件事,就是检查使用网络摄像头拍摄的照片是否质量好.

我知道,"优质"是一个模糊的术语,不能转化为基于软件的解决方案.然而,在尝试为自己定义良好质量时,我发现了这一点:http://en.wikipedia.org/wiki/Image_quality

现在,终于回答我的问题,这些图像质量检查的哪些部分可以自动化.

注意:照片将以邮票大小打印在智能卡上.它们在300 DPI时几乎不会是100x125像素.

干杯,拉古

c# validation imaging machine-learning

14
推荐指数
3
解决办法
3246
查看次数

如何使用Python的PIL绘制贝塞尔曲线?

我正在使用Python的成像库,我想绘制一些贝塞尔曲线.我想我可以逐像素计算,但我希望有更简单的东西.

python bezier imaging python-imaging-library

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

使用PIL绘制多语言文本

我在使用PIL绘制多语言文本时遇到问题.让我们说我想画文字 - "ひらがな - 平假名,히라가나".但是PIL的ImageDraw.text()函数一次只能使用一种字体,因此我无法正确绘制该文本,因为它需要英文,日文和韩文字体.

到目前为止,我没有找到一个简单的解决方案,比如将多个字体传递给PIL,这样它就可以为每个Unicode字符选择合适的字体(就像现代SDK或Web浏览器一样).

我在想的是,我应该遍历每个角色,并确定自己为每个角色使用哪种字体.但我不禁想到必须有一个更简单的方法来做到这一点.

我正朝着正确的方向前进吗?是不是有更简单的方法?

PS)如果有更好的解决方案,可以使用其他语言或其他成像库.

unicode fonts imaging cjk python-imaging-library

13
推荐指数
1
解决办法
5520
查看次数

Python PIL - 绘制圆形

我试图绘制一个简单的圆圈并使用Python Imaging Library将其保存到文件中:

import Image, ImageDraw

image = Image.new('RGBA', (200, 200))
draw = ImageDraw.Draw(image)
draw.ellipse((20, 180, 180, 20), fill = 'blue', outline ='blue')
draw.point((100, 100), 'red')
image.save('test.png')
Run Code Online (Sandbox Code Playgroud)

该点draw.point出现在图像上,但椭圆本身不会出现.我尝试将模式更改为just RGB(我认为模式可能会影响显示的内容),但这并没有解决它.

我怎样才能解决这个问题?谢谢!

python imaging python-imaging-library

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

如何使用pydicom创建JPEG压缩的DICOM数据集?

我正在尝试使用pydicom创建JPEG压缩的DICOM图像。可以在此处找到有关彩色DICOM图像的不错的原始资料,但这主要是理论和C ++。在下面的代码示例中,我在内部创建了一个淡蓝色的省略号output-raw.dcm(未压缩),如下所示:

示例DICOM图像

import io
from PIL import Image, ImageDraw
from pydicom.dataset import Dataset
from pydicom.uid import generate_uid, JPEGExtended
from pydicom._storage_sopclass_uids import SecondaryCaptureImageStorage

WIDTH = 100
HEIGHT = 100


def ensure_even(stream):
    # Very important for some viewers
    if len(stream) % 2:
        return stream + b"\x00"
    return stream


def bob_ross_magic():
    image = Image.new("RGB", (WIDTH, HEIGHT), color="red")
    draw = ImageDraw.Draw(image)
    draw.rectangle([10, 10, 90, 90], fill="black")
    draw.ellipse([30, 20, 70, 80], fill="cyan")
    draw.text((11, 11), "Hello", fill=(255, 255, 0))
    return …
Run Code Online (Sandbox Code Playgroud)

python jpeg imaging dicom pydicom

13
推荐指数
1
解决办法
207
查看次数

如何以原始格式保存图像?

如何使用原始编码保存图像?

似乎保存图像的唯一方法是使用BitmapEncoder,但我不知道如何从图像中获取正确的格式.

例:

Clipboard.GetImage()返回一个InteropBitmap,它似乎不包含任何有关原始格式的信息.

我也尝试使用Extension方法:

public static void Save(this BitmapImage image, System.IO.Stream stream)
{
    var decoder = BitmapDecoder.Create(image.StreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
    var encoder = BitmapEncoder.Create(decoder.CodecInfo.ContainerFormat);
    foreach (var frame in decoder.Frames)
    {
        encoder.Frames.Add(BitmapFrame.Create(frame));
    }
    encoder.Save(stream);
}
Run Code Online (Sandbox Code Playgroud)

但问题是

  1. 例如,ImageSource并不总是BitmapImage(Clipboard.GetImage())
  2. 在某些情况下,image.StreamSource可以为null(似乎是通过相对Uri加载图像时)

有什么建议?

c# wpf imaging

12
推荐指数
1
解决办法
2912
查看次数

如何将字节数组转换为Bitmap实例(.NET)?

我在VB.NET中使用相机(在这种情况下是单色).相机的API使用C++,制造商提供包装.在这些情况下通常,图像作为Byte数组返回.在我的特定情况下,它是每像素8位,所以没有花哨的比特包撤消.

惊讶于.NET对这类事物的支持很少.网上搜索,我发现不同的主题,但它并不能帮助,在许多情况下,人们都对应图像数据的字节数组(即,读取图像文件转换成字节数组,然后让.NET数组解释为一个文件,标题和一切).

在这种情况下,我需要将原始像素值数组转换为特别是我可以在屏幕上显示的内容.

似乎没有被任何内置的方式做到这一点,因为内置到.NET的8bpp的格式索引(需要一个调色板),但它似乎并不设置调色板支持.再次,这真的让我感到惊讶.是我发现的最有希望的话题.

所以我发现这样做的唯一方法是创建一个Bitmap然后逐个像素地复制像素值.在我的情况下,使用时,最快的i7上的8 MPixel图像需要几秒钟SetPixel.

我发现使用的替代方法SetPixelLockBits,它允许您访问构成图像的(非托管)字节数组.这似乎很浪费,因为我必须在.NET中操作数组,然后将其复制回非管理空间.我已经复制了原始图像数据一次(因此原始图像可以重复使用或被其余部分丢弃),所以虽然比使用SetPixel它还要快得多但仍然看起来很浪费.

这是我的VB代码:

Public Function GetBitmap(ByRef TheBitmap As System.Drawing.Bitmap) As Integer
    Dim ImageData() As Byte
    Dim TheWidth, TheHeight As Integer
    'I've omitted the code here (too specific for this question) which allocates
    'ImageData and then uses Array.Copy to store a copy of the pixel values
    'in it. It also assigns the proper values to TheWidth and TheHeight.

    TheBitmap …
Run Code Online (Sandbox Code Playgroud)

.net vb.net imaging

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

将wpf图像控件保存到文件的最简单方法

我的wpf应用程序中有一个Image控件,里面有一个大图像,但控件本身只有60x150,这意味着它只显示该图像的某个部分.将可见部分保存到文件的最简单方法是什么?

谢谢您的帮助.

[编辑]我最终使用的是此处找到的代码(在发布此处之前我无法找到)...

Grid r = new Grid();
        r.Background = new ImageBrush(image2.Source);


    System.Windows.Size sz = new System.Windows.Size(image2.Source.Width, image2.Source.Height);
    r.Measure(sz);
    r.Arrange(new Rect(sz));

    RenderTargetBitmap rtb = new RenderTargetBitmap((int)image2.Source.Width, (int)image2.Source.Height, 96d, 96d, PixelFormats.Default);
    rtb.Render(r);

    BmpBitmapEncoder encoder = new BmpBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(rtb));

    FileStream fs = File.Open(@"C:\lol.png", FileMode.Create);
    encoder.Save(fs);
    fs.Close();
Run Code Online (Sandbox Code Playgroud)

wpf imaging save

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

生成低位深度的图像文件?

bpp =每像素位数,因此对于R/G/B/A,32bpp表示8/8/8/8.

像.NET有这些"System.Drawing.Imaging.PixelFormat"的枚举.

现在,一旦我的图形具有BitmapImage对象,我将如何将其保存为文件/我将使用哪种格式?

什么图像文件格式(JPEG/GIF/PNG)支持低位深度,如16bpp或8bpp (而不是通常的32bpp或24bpp)

c# vb.net imaging bitmap

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

在R演示文稿中添加本地图像文件

我正在尝试.png使用R markdown为R演示文稿包含一个成像文件().我遵循以下建议:如何使用knitr导入本地图像进行markdown 但是通过使用![title](my.png),我收到此错误:

错误:意外的'['in"!["

my.png文件位于当前路径中.我也尝试使用绝对路径,但得到了相同的错误消息.

把它放在r夹头里也失败了.

我也试过了

```{r,fig.width=350, fig.height=250,echo=FALSE}
library(png)
library(grid)
appimg <- readPNG('my.png')
grid.raster(appimg)
```
Run Code Online (Sandbox Code Playgroud)

但也失败了!

我正在使用Windows 7 R studio 0.98.1102和R 3.2.1.

markdown imaging r local presentation

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