我想使用Python检索jpeg文件的位深度.
使用Python Imaging Library:
import Image
data = Image.open('file.jpg')
print data.depth
Run Code Online (Sandbox Code Playgroud)
然而,对于明显的24位图像,这给了我8的深度.难道我做错了什么?有没有办法用纯Python代码做到这一点?
提前致谢.
编辑:这是data.bits而不是data.depth.
我没有成像或图形的背景,所以请耐心等我:)
我在我的一个项目中使用JavaCV.在这些例子中,Frame构造了一个具有一定大小的缓冲区的a .
public void onPreviewFrame(byte[] data, Camera camera)在Android中使用该函数时,data如果将声明声明Frame为new Frame(frameWidth, frameHeight, Frame.DEPTH_UBYTE, 2);where frameWidth并frameHeight声明为,则复制此字节数组没有问题
Camera.Size previewSize = cameraParam.getPreviewSize();
int frameWidth = previewSize.width;
int frameHeight = previewSize.height;
Run Code Online (Sandbox Code Playgroud)
最近,Android添加了一种捕获屏幕的方法.当然,我想抓住那些图像并将它们转换为Frames.我修改了Google的示例代码以使用ImageReader.
这ImageReader被构造为ImageReader.newInstance(DISPLAY_WIDTH, DISPLAY_HEIGHT, PixelFormat.RGBA_8888, 2);.所以目前它使用RGBA_8888像素格式.我使用以下代码将字节复制到Frame,实例化为new Frame(DISPLAY_WIDTH, DISPLAY_HEIGHT, Frame.DEPTH_UBYTE, 2);:
ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();
byte[] bytes = new byte[buffer.remaining()];
buffer.get(bytes);
mImage.close();
((ByteBuffer) frame.image[0].position(0)).put(bytes); …Run Code Online (Sandbox Code Playgroud) 我正在使用包含许多精确放置的文本字符串的PIL创建图像.我第一次尝试是为描述像素字体转换成PIL兼容的格式在这里.例如,我下载Silksreen字体并将其转换为:
otf2bdf -p 8pt -o fonts/slkscr.bdf fonts/slkscr.ttf
pilfont.py fonts/slkscr.bdf
Run Code Online (Sandbox Code Playgroud)
我可以在PIL中使用字体,如下所示:
import Image, ImageDraw, os, sys, ImageFont
im = Image.new("RGB", (40,10))
draw = ImageDraw.Draw(im)
fn = ImageFont.load('fonts/slkscr.pil')
draw.text((0,0), "Hello", font=fn)
del draw
# write to stdout
im.save(sys.stdout, "PNG")
Run Code Online (Sandbox Code Playgroud)
但是,得到的图像(
)不反映字体应该是什么样子.
我应该使用什么程序来转换和使用像素字体,以便它们按预期呈现?
提前致谢.
在我的项目中,我正在使用(未压缩的16位灰度)千兆像素图像,这些图像来自高分辨率扫描仪,用于测量目的.由于这些位图无法加载到内存中(主要是由于内存碎片),我使用的是瓷砖(以及光盘上的平铺TIFF).(请参阅StackOverflow主题)
我需要以Google Maps或DeepZoom的方式实现平移/缩放.我必须在将它呈现在屏幕上之前动态应用图像处理,因此我不能使用直接访问图像文件的预先烹饪的库.对于缩放,我打算在我的文件(金字塔存储)中保留一个多分辨率图像.最有用的步骤似乎是+ 200%,50%并且显示全部.
我的代码库目前是C#和.NET 3.5.目前我假设表格类型,除非WPF在这方面给我很大的优势.我有一个方法可以返回底层图像的任何(已处理)部分.
具体问题:
我已经完成了艰苦的工作,将我的MacBook上的iSight摄像头转换为红外摄像头,转换它,设置阈值等等.现在有一个看起来像这样的图像:
我现在的问题是; 我需要通过分组白色像素来了解我的图像上有多少斑点.我不想使用cvBlob/ cvBlobsLib,我宁愿只使用OpenCV中已有的东西.
我可以通过检查(阈值)触摸白色像素来循环像素并对它们进行分组,但我猜测从OpenCV可能有一种非常简单的方法吗?
我猜我不能使用,cvFindContours因为这将检索一个大数组中的所有白色像素,而不是将它们分成"组".谁能推荐?(注意这些不是圆圈,只是从小红外LED发出的光)
提前谢谢了!
tommed
我想从各种"文档"文件格式生成缩略图,例如odt,doc(x)和ppt(x),还有来自Python应用程序的mp4,psd,tiff(以及可能的其他).据我所知,对于这些格式中的每一种,至少有一个开源应用程序可以生成预览图像/缩略图(例如LibreOffice,ffmpeg)或者至少提取嵌入的缩略图(例如imagemagick).
我的主要问题是这些应用程序/库中的每一个都使用不同的命令行选项,因此我正在寻找一个Python库(或统一的CLI工具),它提供了一个高级API来生成具有指定维度的缩略图,给出质量级别文件名并调用适当的外部工具(理想情况下包括捕获异常,段错误和超时).如果请求可以生成多个缩略图,则奖励点数(例如,每页一页,页面XY,每Z秒,但最多N个图像).
有谁知道这样的库/实用程序?(边界条件:文件可能包含敏感材料或可能非常大,因此必须在没有任何网络通信的情况下工作,使用外部Web服务是不可能的.)
如果在Python中没有这样的东西,那么本地可安装的Web服务也可以.
我正在尝试设置一个C#应用程序,它使用代码项目中的 TWAIN 示例
这工作正常,除了我需要强制Form转换IMessageFilter并调用IMessageFilter.PreFilterMessage()以捕获TWAIN回调.
另外我需要通过调用来启动这个过滤
Application.AddMessageFilter();
Run Code Online (Sandbox Code Playgroud)
有没有办法在WPF窗口中做同样的事情?(添加消息过滤器并捕获TWAIN回调).
另一个完全高级的问题:有没有人知道替代C#TWAIN库\包装器?
谢谢.
第3组压缩有2种变化(第3组1D和第3组2D).以Tiff格式保存图像时,EncoderValue枚举中只有一个选项用于第3组.是否有一个单独的参数来控制它?
我使用以下代码将文本绘制到jpg图像上,但它需要x/y坐标精度来放置文本的位置.
var bmp = new Bitmap("C:\\testing\\Given.jpg");
var gra = Graphics.FromImage(bmp);
var text = "The Berman's";
var font = new Font("Segoe Script", 24);
var brush = Brushes.Orange;
var point = new PointF(130, 224);
gra.DrawString(text, font, brush, point);
bmp.Save("C:\\testing\\Custom.jpg");
Run Code Online (Sandbox Code Playgroud)
我如何将文本居中放在图像上?我猜这将与定义某种容器(矩形可能?),这是图像的宽度和文本的中心?不确定最佳做法是什么.
我有一个名为 SpriteImage 的结构,其定义如下:
type SpriteImage struct {
dimentions image.Point
lastImgPosition image.Point
sprite *image.NRGBA
}
Run Code Online (Sandbox Code Playgroud)
在我的流程中,我首先启动一个新的此类结构:
func NewSpriteImage(width, height int) SpriteImage {
c := color.RGBA{0xff, 0xff, 0xff, 0xff}
blankImage := imaging.New(width, height, c)
return SpriteImage{
dimentions: image.Point{X: width, Y: height},
lastImgPosition: image.Point{X: 0, Y: 0},
sprite: blankImage,
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将图像添加到该 SpriteImage 中,如下所示:
func (s *SpriteImage) AddImage(img image.Image) error {
imgWidth := img.Bounds().Dx()
imgHeight := img.Bounds().Dy()
// Make sure new image will fit into the sprite.
if imgWidth != s.dimentions.X {
return …Run Code Online (Sandbox Code Playgroud)