标签: image-processing

WPF中的图像变得模糊

我正在使用C#在WPF中开发一个应用程序.我将图像放在一个WrapPanel中,并在一个Grid中显示另一个Border,并在Buttons中使用图像.问题是我的图像控制失去了它的质量.我无法在此发布我的图片,所以我只是在这里描述.

我用过SnapsToDevicePixels="True"图像,但看起来仍然很模糊.

更新:

在这里,我分享了下面的图片: 在此输入图像描述

c# wpf xaml image image-processing

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

找到高质量和低质量,像素化图像之间的匹配 - 是否可能?怎么样?

我有个问题.我的公司给了我一项非常无聊的任务.我们有两个对话框数据库.其中一个数据库包含可怕质量的图像,另一个非常高质量.

不幸的是,可怕质量的对话包含了对其他信息的重要映射.

我的任务是,手动,浏览所有不良图像并将它们匹配到好的图像.

是否有可能在任何程度上自动化这个过程?以下是两个对话框(从Google图像中随机抽取)的示例:

质量好的形象

质量差的图像

所以我目前正在尝试用C#编写一个程序来从数据库中提取这些照片,循环浏览它们,找到具有常见形状的照片,并返回它们的ID.我最好的选择是什么?

c# algorithm image image-processing pattern-matching

38
推荐指数
5
解决办法
3599
查看次数

如何从图像中裁剪出最大的矩形

我在桌子上有一些页面图像.我想从图像中裁剪页面.通常,页面将是图像中最大的矩形,但是,在某些情况下,矩形的所有四个边可能都不可见.

我正在做以下但没有得到理想的结果:

import cv2
import numpy as np

im = cv2.imread('images/img5.jpg')
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,0)
_,contours,_ = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
areas = [cv2.contourArea(c) for c in contours]
max_index = np.argmax(areas)
cnt=contours[max_index]
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(im,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("Show",im)
cv2.imwrite("images/img5_rect.jpg", im)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

以下是几个例子:

第一个例子:我可以在这个图像中找到矩形,但是,如果木材的剩余部分也可以裁剪掉. 在此输入图像描述

在此输入图像描述

第二个示例:未在此图像中找到矩形的正确尺寸. 在此输入图像描述

在此输入图像描述

第3个示例:无法在此图像中找到正确的尺寸. 在此输入图像描述 在此输入图像描述

第四个例子:同样如此. 在此输入图像描述 在此输入图像描述

python opencv image-processing

38
推荐指数
2
解决办法
7255
查看次数

OpenCV/SURF如何从描述符中生成图像哈希/指纹/签名?

这里有一些主题对如何找到类似的图片非常有帮助.

我想要做的是获取图片的指纹,并在数码相机拍摄的不同照片上找到相同的图片.SURF算法接缝是独立于缩放,角度和其他失真的最佳方式.

我正在使用带有SURF算法的OpenCV来提取样本图像上的特征.现在我想知道如何将所有这些特征数据(位置,拉普拉斯,大小,方向,粗麻布)转换为指纹或散列.

该指纹将存储在数据库中,并且搜索查询必须能够将该指纹与具有几乎相同特征的照片的指纹进行比较.

更新:

似乎没有办法将所有描述符向量转换为简单的哈希.那么将图像描述符存储到数据库中以便快速查询的最佳方法是什么?

词汇树是一种选择吗?

我会非常感谢任何帮助.

opencv image-processing surf data-structures

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

使用ImageMagick从PSD中提取图层,保留布局

我正在使用ImageMagick从PSD中提取图层,并且它可以很好地完成:

convert image.psd image-%d.png
Run Code Online (Sandbox Code Playgroud)

但是,得到的PNG图像具有不同的尺寸,这取决于图层的实际内容.我想要的是提取所有图层,但是它们具有相同的大小,以便我可以轻松地将它们放在彼此的顶部,并使所有内容与原始PSD中的一样排列.

如果它有助于可视化,这就是我目前使用上述命令获得的:

+----+
|A   |   +-+   +-+
|    | = |A| + |B|
|   B|   +-+   +-+
+----+

而我想要的是:

+----+   +----+   +----+
|A   |   |A   |   |    |
|    | = |    | + |    |
|   B|   |    |   |   B|
+----+   +----+   +----+

由此产生的图像具有透明背景,以便我可以这样做:

+----+   +----+ 
|A   |   |A   |+
|    | = |    ||
|   B|   |   B||
+----+   +----+|
          +----+

我与ImageMagick没有任何关系,所以如果有另一个(最好是命令行)工具可以实现这一点,那很好.

command-line psd imagemagick image-processing

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

差异图的定义

我被要求实现基于边缘的视差图,但我从根本上不了解视差图是什么.谷歌搜索似乎没有产生直截了当的答案.有人可以解释它还是指向更好的资源?

imaging image-processing computer-vision disparity-mapping stereo-3d

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

3D重建 - 如何从2D图像创建3D模型?

如果我用相机拍照,所以我知道从相机到物体的距离,比如房子的比例模型,我想把它变成一个我可以操纵的3D模型,所以我可以发表评论房子的不同部分.

如果我坐下来考虑拍摄不止一张图片,标记方向和距离,我应该能够弄清楚如何做到这一点,但是,我想我会问是否有人有一些可能有助于解释更多的论文.

你解释的语言并不重要,因为我正在寻找最好的方法.

现在我正在考虑展示房子,然后用户可以为高度提供一些帮助,例如从相机到模型那部分顶部的距离,并且给予足够的这个就可以开始计算高度其余的,特别是如果有一个自上而下的图像,然后是四边角度的图片,以计算相对高度.

然后部件需要颜色不同,以帮助分离我期望的模型的各个部分.

language-agnostic 3d image-processing 3d-reconstruction 3d-model

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

如何在opencv java api中将MatOfPoint转换为MatOfPoint2f

我正在尝试 使用opencv java api 实现以下问题的示例代码 .要findContours(gray, contours, CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);在java中实现,我使用了这种语法Imgproc.findContours(gray, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);.

所以现在轮廓应该List<MatOfPoint> contours = new ArrayList<MatOfPoint>();而不是vector<vector<cv::Point> > contours;.

然后我需要实现这个approxPolyDP(Mat(contours[i]), approx, arcLength(Mat(contours[i]), true)*0.02, true);.在java api中,Imgproc.approxPolyDP接受参数为approxPolyDP(MatOfPoint2f curve, MatOfPoint2f approxCurve, double epsilon, boolean closed).我如何将MatOfPoint转换为MatOfPoint2f?

或者有没有办法使用与c ++接口相同的向量来实现它.任何建议或示例代码都非常感谢.

java android opencv image-processing

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

c ++和opencv获取并设置像素颜色为Mat

我正在尝试将一些像素的新颜色值设置为cv :: Mat图像,我的代码如下:

    Mat image = img;
    for(int y=0;y<img.rows;y++)
    {
        for(int x=0;x<img.cols;x++)
        {
        Vec3b color = image.at<Vec3b>(Point(x,y));
        if(color[0] > 150 && color[1] > 150 && color[2] > 150)
        {
            color[0] = 0;
            color[1] = 0;
            color[2] = 0;
            cout << "Pixel >200 :" << x << "," << y << endl;
        }
        else
        {
            color.val[0] = 255;
            color.val[1] = 255;
            color.val[2] = 255;
        }
    }
    imwrite("../images/imgopti"+to_string(i)+".tiff",image);
Run Code Online (Sandbox Code Playgroud)

它似乎在输出中获得了良好的像素(使用cout),但是在输出图像中(使用imwrite),相关的像素不会被修改.我已经尝试过使用color.val [0] ..我仍然无法弄清楚为什么输出图像中的像素颜色不会改变.谢谢

c++ opencv pixel image-processing mat

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

将一组点集合在一起的算法

注意:我将这个问题放在MATLAB和Python标签中,因为我是这些语言中最精通的.但是,我欢迎任何语言的解决方案.


问题序言

我用鱼眼镜头拍了一张照片.此图像由带有一堆方形对象的图案组成.我想用这个图像做的是检测每个方块的质心,然后使用这些点来执行图像的不失真 - 具体来说,我正在寻找正确的失真模型参数.应该注意,并非所有的方块都需要被检测到.只要他们中的绝大多数都是,那就完全没问题......但这不是这篇文章的重点.我已经编写过参数估计算法,但问题是它需要在图像中看起来共线的点.

我想问的基本问题给出了这些要点,将它们组合在一起的最佳方法是什么,以便每个组由水平线或垂直线组成?

我的问题的背景

对于我提出的问题,这并不重要,但如果您想知道我从哪里得到我的数据并进一步理解我提出的问题,请阅读.如果您不感兴趣,那么您可以直接跳到下面的问题设置部分.


我正在处理的图像示例如下所示:

在此输入图像描述

这是一张960 x 960的图像.图像最初的分辨率较高,但我对图像进行二次采样以加快处理时间.如您所见,有一堆方形图案分散在图像中.此外,我计算的质心是关于上面的二次采样图像.

我设置的用于检索质心的管道如下:

  1. 执行Canny边缘检测
  2. 专注于最小化误报的感兴趣区域.这个感兴趣的区域基本上是没有任何覆盖其中一侧的黑色胶带的正方形.
  3. 找到所有截然不同的轮廓
  4. 对于每个不同的闭合轮廓......

    一个.执行Harris角点检测

    湾 确定结果是否有4个角点

    C.如果是这样,则该轮廓属于正方形并找到该形状的质心

    d.如果没有,则跳过此形状

  5. 将步骤#4中检测到的所有质心放入矩阵中进行进一步检查.

以下是上图中的示例结果.每个检测到的正方形具有四个点,根据它相对于正方形本身的位置进行颜色编码.对于我检测到的每个质心,我会在图像本身的质心处写一个ID.

在此输入图像描述

使用上面的图像,有37个检测到的正方形.

问题设置

假设我有一些图像像素点存储在N x 3矩阵中.前两列是x(水平)和y(垂直)坐标,在图像坐标空间中,y坐标反转,这意味着正向下y移动.第三列是与该点相关联的ID.

下面是一些用MATLAB编写的代码,它采用这些点,将它们绘制到2D网格上,并用矩阵的第三列标记每个点.如果您阅读上述背景,则这些是我上面概述的算法检测到的点.

data = [ 475.  ,  605.75,    1.;
       571.  ,  586.5 ,    2.;
       233.  ,  558.5 ,    3.;
       669.5 ,  562.75,    4.;
       291.25,  546.25,    5.;
       759.  ,  536.25,    6.;
       362.5 ,  531.5 ,    7.;
       448.  ,  513.5 …
Run Code Online (Sandbox Code Playgroud)

python algorithm matlab image image-processing

37
推荐指数
3
解决办法
2540
查看次数