我抓住屏幕的一部分并扫描像素以获得特定的颜色范围.
我查看了MSDN的Capturing a Image示例,并了解如何使用这些函数.
我可以把这些位放到一个数组中,但是我不知道如何以这样的方式进行操作,我可以像运用图像一样循环它.一个伪示例(我肯定是这样的):
for ( x = 1; x <= Image.Width; x += 3 )
{
for ( y = 1; y <= Image.Height; y += 3 )
{
red = lpPixels[x];
green = lpPixels[x + 1];
blue = lpPixels[x + 2];
}
}
Run Code Online (Sandbox Code Playgroud)
这基本上就是我想做的事情,所以如果红色,蓝色和绿色是某种颜色,我会知道图像中(x,y)的坐标是什么.
我只是不知道如何以这种方式使用GetDIBits,以及如何适当地设置数组以便能够实现这一点.
我有一个2208 x 3000 TransformedBitmap对象,格式为{Indexed8},我正在做.CopyPixels().我正在使用
(int)((formattedBitmap.PixelWidth * formattedBitmap.Format.BitsPerPixel + 7) / 8)
Run Code Online (Sandbox Code Playgroud)
(假设'formattedBitmap'是我正在尝试复制像素的图像的名称),用于我的方法调用中的'stride'值和长度为2208的字节数组.我在代码中的其他地方有一些工作(图像的格式是{Gray8}.但是,在我想要在上述图像上做同样的事情的地方,我不断得到一个"超出范围的参数"异常说"参数值不能小于'6624000'.\ r \n参数名称:缓冲区."
我对此的疑问是:为什么世界上完全相同的代码似乎在一个地方而不是另一个地方?用外行人的话来说,世界上究竟是什么呢?如何在不出现此错误的情况下获得所需的影响(复制位)?我究竟做错了什么?
对此的任何帮助将非常感谢.非常感谢!
在所有浏览器中,1em不应该是16px吗?
我有这个CSS
* {font-size: 1em; }
label { font-size: .85em; }
Run Code Online (Sandbox Code Playgroud)
IE8上的标签元素高度为12px,相对于我希望的13.6px.
感谢帮助!
关于Android上的一些UI开发,我有一些问题和疑问.首先看看这张图片:

首先是在图像A)这是一个我插入并重复水平的图像,无论屏幕大小如何都在屏幕顶部呈现锯齿形状,而且上面是没有内容和背景颜色的textField - 但我确定你可以这两种颜色完全不匹配,即使它们都具有相同的十六进制颜色值(#BF0426).其次,您还可以在锯齿形图像上看到一些严重的像素化.我该如何解决这两个问题?
然后在图像B)这里我有一个简单的listView.我想做的是,首先在两侧缩进一点,并在顶部和底部项目的角落.所以基本上我希望它看起来像截图上绘制的蓝色边框.(您典型的iOS listView).我该怎么做呢?
提前感谢任何提示!
例如,如果我加载并显示图像
c = imread('cameraman.tif');
imshow(c)
Run Code Online (Sandbox Code Playgroud)
然后在绘图窗口中,在图像本身下,有两个数字表示当前光标位置的形式
[39.25, 120.6]
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
此信息是否可以包含像素的灰度/ rgb值,例如
[23, 46] = 127
要么
[23, 46] = (46,128,210)?
我试过摆弄"轴"命令,但我找不到任何有用的东西.
我想我想要的是类似Matlab的"像素信息工具" impixelinfo:http:
//www.mathworks.com.au/help/images/ref/impixelinfo.html虽然我知道来自octave图像wiki的http:// wiki .octave.org/Image_package是impixelinfo不是在目前八音实施.但也许有另一种方法可以达到相同的效果?
我在linux(Ubuntu 12.04)下使用Octave-3.8.0,图像包2.2.0.
我正在使用C++和OpenCV创建一个函数,它将检测图像中像素的颜色,确定它所在的颜色范围,并用通用颜色替换它.例如,绿色可以从深绿色到浅绿色,程序将确定它仍然是绿色并用简单的绿色替换它,使输出图像看起来非常简单.一切都已设置,但我无法定义每个范围的特征,如果有人知道或者一个公式,给定BGR值,可以确定像素的整体颜色,这很奇怪.如果不是,我将不得不做很多实验,并自己做,但如果已经存在的东西,节省时间.我做了大量的研究,到目前为止还没有找到任何东西.
我正在尝试将图像的像素绘制到图形上下文中以迭代和打印图像的颜色空间信息值.我已设法缓冲所有原始像素值.但我尝试使用CGImageCreate绘制位图图像时遇到以下错误,也附带截图.这是我编写的代码.
func createRGBAPixel(inImage: CGImageRef) -> CGContextRef {
//Image width, height
let pixelWidth = CGImageGetWidth(inImage)
let pixelHeight = CGImageGetHeight(inImage)
//Declaring number of bytes
let bytesPerRow = Int(pixelWidth) * 4
let byteCount = bytesPerRow * Int(pixelHeight)
//RGB color space
let colorSpace = CGColorSpaceCreateDeviceRGB()
//Allocating image data
let mapData = malloc(byteCount)
let mapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedFirst.rawValue)
//Create bitmap context
let context = CGBitmapContextCreate(mapData, pixelWidth, pixelHeight, Int(8), Int(bytesPerRow), colorSpace, mapInfo.rawValue)
let imageRef = CGBitmapContextCreateImage(context)
CGContextDrawImage(context, CGRectMake(0, 0, pixelWidth, pixelHeight), imageRef)
let data …Run Code Online (Sandbox Code Playgroud) 我一直pt在XML文件中使用该单元.现在我需要在运行时设置元素的宽度.如何通过点设置宽度,使其与我在其他地方使用的单位相同.我假设我需要乘以分辨率和dpi.代码示例最好.
我得到这样的窗口高度:
var theHeight = "innerHeight" in window
? window.innerHeight
: document.documentElement.offsetHeight;
Run Code Online (Sandbox Code Playgroud)
我需要一个高度减去50px的var
我怎么做到的?
谢谢!
这个问题可以用任何类型的编程语言来解答,因为我想要一些算法帮助,但我更喜欢Delphi.我的任务是检测和计算随机图片的多个形状(1到N之间 - 大部分是圆形或Elipse)并计算它们的中间值并将它们作为图片的坐标返回.每个形状的中间可以有一个填充物(但没关系).形状彼此相距至少1个像素.所有形状都不会与图片的另一个或角落融为一体.图片的背景总是具有相同的背景颜色,实际上无关紧要,因为与背景相比,形状的边框/框架总是不同的颜色.这使得检测形状变得容易.我正在考虑按像素逐行扫描并收集坐标,然后围绕每个形状绘制一个不可见的矩形/正方形以计算中间值.然后我也听说过扫描线,但我认为在这种情况下它不会更快.所以我的问题是,我该如何计算:
一些图片可视化任务:
这是一张随机形状的图片(大多数是近圆圈)正如你所看到的,它们彼此分开很好.

然后我可以很容易地绘制/计算每个形状周围的假想矩形/正方形,并计算它的中间:
我有矩形/正方形后.我可以很容易地计算中间.我该如何开始?
PS.:我在mspaint中画了一些圆圈.我必须补充一点,所有形状都是CLOSED,这样就可以在图片中填充每个形状,没有任何问题!
谢谢您的帮助.