Tag: image processing

执行cv :: warpPerspective在一组cv :: Point上伪造的校验

我正在尝试对一组点进行透视转换 ,以达到去扭曲效果: http://nuigroup.com/?ACT=28&fid=27&aid=1892_H6eNAaign4Mrnn30Au8d 我使用下面的图片进行testing, 绿色的矩形显示感兴趣的区域。 我想知道是否有可能实现我希望使用cv::getPerspectiveTransform和cv::warpPerspective的简单组合的cv::warpPerspective 。 我分享了迄今为止我写的源代码,但是它不起作用。 这是由此产生的图像: 所以有一个vector<cv::Point> 定义了感兴趣的区域 ,但是这些点并没有以任何特定的顺序存储在vector中,而这在检测过程中是不能改变的。 无论如何, 后来 ,向量中的点用来定义一个RotatedRect ,它依次被用来组装cv::Point2f src_vertices[4]; , cv::getPerspectiveTransform()所需的variables之一。 我对顶点及其组织方式的理解可能是其中一个问题 。 我也认为使用RotatedRect并不是存储ROI原始点的最佳方法 ,因为坐标会稍微改变以适应旋转的矩形, 这并不是很酷 。 #include <cv.h> #include <highgui.h> #include <iostream> using namespace std; using namespace cv; int main(int argc, char* argv[]) { cv::Mat src = cv::imread(argv[1], 1); // After some magical procedure, these are […]

人脸识别库

我正在为大学项目寻找免费的面部识别库。 我不是在寻找人脸检测 。 我正在寻找实际的认可。 这意味着查找包含指定面或库的图像,以计算特定面之间的距离。 目前我正在使用OpenCV来检测人脸和粗糙的Eigenfacealgorithm进行识别。 但是我认为应该有比自己写的Eigenfacealgorithm更好的性能。 我不是在谈论速度的performance,我正在寻找一个比简单的特征脸方法更好的结果库。 我看了一眼Faint ,但是看起来这个库对于我自己的应用程序来说并不是很可重用。 我对Python,Java,C ++,C或类似的库感到满意。 最好的情况是,如果它可以在Windows机器上运行,因为我现在只依赖一些外部的Windows代码。

二维数组中的峰值检测

我正在帮助兽医诊所测量狗爪下的压力。 我使用Python进行数据分析,现在我试图将爪子分成(解剖)子区域。 我做了每个爪子的二维数组,每个爪子随着时间的推移装载的每个传感器的最大值。 下面是一个爪子的例子,我用Excel来绘制我想要检测的区域。 这些都是与本地最大值的传感器周围2乘2箱,总共有最大的总和。 所以我尝试了一些实验,并决定只是寻找每个列和行的最大值(由于爪子的形状,不能朝一个方向看)。 这似乎很好地“检测”了单独的脚趾的位置,但它也标记了相邻的传感器。 那么告诉Python哪个最好的是我想要的呢? 注意:2×2方块不能重叠,因为它们必须是分开的脚趾! 另外我还带了2×2作为一个方便,更高级的解决scheme是值得欢迎的,但我只是一个人类运动科学家,所以我既不是一个真正的程序员或math家,所以请保持简单。 这是一个可以用np.loadtxt加载的版本 结果 所以我尝试了@ jextee的解决scheme(见下面的结果)。 正如你所看到的,它在前爪上非常有效,但后腿的效果不太好。 更具体地说,它不能识别第四脚趾的小峰。 这显然是固有的事实,即循环看起来低于最低值,而没有考虑到这一点。 有谁会知道如何调整@ jextee的algorithm,以便它能够find第四个脚趾吗? 由于我还没有处理任何其他的审判,我不能提供任何其他样本。 但是我之前给出的数据是每个爪子的平均值。 这个文件是一个数组,其最大数据量为9个爪子,它们与盘子接触的顺序是这样的。 这幅图像显示了它们是如何在板上空间分布的。 更新: 我已经为所有感兴趣的人build立了博客,并且我已经用所有的原始尺寸设置了SkyDrive。 所以要求更多数据的人:给你更多的权力! 更新: 所以在我的帮助后,我得到了关于爪子检测和爪子sorting的问题 ,终于能够检查每个爪子的脚趾检测! 事实certificate,除了我自己的例子中的那种尺寸的爪子之外,它的效果并不好。 事后看来,如此任意select2x2是我自己的错。 这里有一个很好的例子:一个钉子被认为是一个脚趾,而“脚跟”是如此之宽,它会被认出两次! 爪子太大,所以采取2×2大小没有重叠,导致一些脚趾被检测到两次。 反过来说,小狗往往没有find第五个脚趾,我怀疑是由于2×2面积太大造成的。 在对我所有的测量结果进行了现在的解决之后,我得出了惊人的结论,几乎所有的小型犬都没有find第五只脚趾,而在超过50%的大型狗的影响中,它会发现更多! 很显然,我需要改变它。 我自己的猜测是把neighborhood的大小改变成小狗的大小,大狗的大小。 但是, generate_binary_structure不会让我改变数组的大小。 因此,我希望其他人对脚趾定位有更好的build议,也许脚趾的尺寸与脚掌尺寸有关?

返回一个PHP页面作为图像

我试图读取图像文件(.jpeg是确切的),并“回声”回到页面输出,但有显示图像… 我的index.php有这样的图像链接: <img src='test.php?image=1234.jpeg' /> 和我的PHP脚本基本上这样做: 1)阅读1234.jpeg 2)回声文件的内容… 3)我有一种感觉,我需要返回与MIMEtypes的输出,但这是我迷路的地方 一旦我明白了这一点,我将一起删除文件名input,并将其replace为图像ID。 如果我不清楚,或者您需要更多信息,请回复。

用MaxHeight和MaxWidth约束按比例调整图像大小

使用System.Drawing.Image 。 如果图像宽度或高度超过最大值,则需要按比例resize。 resize后,需要确保宽度或高度都不超过限制。 宽度和高度将被resize,直到它不会自动超过最大值和最小值(可能的最大尺寸)并保持比例。

有没有办法来检测图像是否模糊?

我想知道是否有办法通过分析图像数据来确定图像是否模糊。

opencv绘制二维直方图

我想知道如何在opencv c ++中绘制HSV Mat的二维直方图。 我目前的代码试图显示它失败了。 我已经环顾四周如何绘制直方图,我发现的所有那些是将它们绘制为独立的1d直方图。 这是我当前的输出,色相的数量是30,饱和度是32。 这里是另一个输出,色调箱的数量是7,饱和度箱是5: 我希望看起来更像这里的结果 http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html 我也注意到,每当我做cout << Hist.size它给我50×50。 我明白,只是意味着arrays的第一个维度是250? 另外,如何将直方图从最高到最低(或反之亦然)值频率sorting? 那是我想解决的另一个问题。 我目前的function如下。 void Perform_Hist(Mat& MeanShift, Mat& Pyramid_Result, Mat& BackProj){ Mat HSV, Hist; int histSize[] = {hbins, sbins}; int channels[] = {0, 1}; float hranges[] = {0, 180}; float sranges[] = {0, 256}; const float* ranges[] = {hranges, sranges}; cvtColor(MeanShift, HSV, […]

获取图像尺寸而不读取整个文件

有没有一种廉价的方式来获得图像的尺寸(JPG,PNG,…)? 最好,我想实现这个只使用标准类库(因为托pipe限制)。 我知道,阅读图片标题并自己parsing它应该相对容易,但似乎这样的东西应该已经存在了。 另外,我已经validation了下面这段代码可以读取整个图像(我不想): using System; using System.Drawing; namespace Test { class Program { static void Main(string[] args) { Image img = new Bitmap("test.png"); System.Console.WriteLine(img.Width + " x " + img.Height); } } }

通过Javascript获取图像的平均颜色

不知道这是可能的,但希望编写一个脚本,将返回图像的平均hex或rgb值。 我知道它可以在AS中完成,但希望在JavaScript中做到这一点。

如何从图像中获取像素的x,y坐标颜色?

有什么办法来检查一个PNG图像的选定(x,y)点是否透明?