标签: image-processing

高质量图像缩放库

我想在C#中缩放图像,其质量水平与Photoshop一样好.有没有可用的C#图像处理库来做这件事?

c# image-manipulation image image-processing image-scaling

141
推荐指数
5
解决办法
13万
查看次数

提取文本OpenCV

我试图在图像中找到文本的边界框,目前正在使用这种方法:

// calculate the local variances of the grayscale image
Mat t_mean, t_mean_2;
Mat grayF;
outImg_gray.convertTo(grayF, CV_32F);
int winSize = 35;
blur(grayF, t_mean, cv::Size(winSize,winSize));
blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize));
Mat varMat = t_mean_2 - t_mean.mul(t_mean);
varMat.convertTo(varMat, CV_8U);

// threshold the high variance regions
Mat varMatRegions = varMat > 100;
Run Code Online (Sandbox Code Playgroud)

给出这样的图像时:

在此输入图像描述

然后,当我显示varMatRegions我得到这个图像:

在此输入图像描述

正如你所看到的那样,它将左侧的文本块与卡片的标题结合起来,对于大多数卡片而言,这种方法效果很好,但在较繁忙的卡片上它可能会导致问题.

这些轮廓连接不好的原因是它使得轮廓的边界框几乎占据了整个卡片.

任何人都可以建议一种不同的方式来查找文本以确保正确检测文本吗?

200分,谁能在这两张卡上方找到文字.

在此输入图像描述 在此输入图像描述

c++ text opencv image-processing bounding-box

141
推荐指数
6
解决办法
10万
查看次数

如何使用PIL将透明png图像与另一个图像合并

我有一个透明的png图像"foo.png",我打开了另一个图像

im = Image.open("foo2.png");
Run Code Online (Sandbox Code Playgroud)

现在我需要的是将foo.png与foo2.png合并.

(foo.png包含一些文本,我想在foo2.png上打印该文本)

python image image-processing python-imaging-library

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

图像处理,以提高tesseract OCR的准确性

我一直在使用tesseract将文档转换为文本.文档的质量范围非常广泛,我正在寻找有关哪种图像处理可能会改善结果的提示.我注意到高度像素化的文本 - 例如由传真机生成的文本 - 对于tesseract来说特别难以处理 - 可能是角色的所有锯齿状边缘都会混淆形状识别算法.

什么样的图像处理技术可以提高准确度?我一直在使用高斯模糊来平滑像素化图像并看到一些小的改进,但我希望有更具体的技术可以产生更好的结果.假设一个过滤器被调整为黑白图像,这将平滑不规则的边缘,然后是一个过滤器,它会增加对比度,使角色更加清晰.

对于图像处理新手的任何一般提示?

ocr tesseract image-processing

127
推荐指数
9
解决办法
13万
查看次数

如何整理我的爪子?

我之前的问题中,我得到了一个很好的答案,帮助我检测到爪子撞到压板的位置,但现在我正在努力将这些结果与相应的爪子联系起来:

替代文字

我手动注释了爪子(RF =右前方,RH =右后方,LF =左前方,LH =左后方).

正如您所看到的那样,显然有一种重复的模式,它几乎在每次测量中都会出现.这是一个手动注释的6个试验的演示链接.

我最初的想法是使用启发式方法进行排序,例如:

  • 前爪和后爪的重量比约为60-40%;
  • 后爪通常表面较小;
  • 爪子(通常)在空间上分为左右两侧.

但是,我对我的启发式方法持怀疑态度,因为一旦遇到我没想过的变化,他们就会对我失败.他们也无法应对可能有自己规则的跛脚犬的测量结果.

此外,Joe提出的注释有时会搞砸,并没有考虑到爪子的实际外观.

基于我在关于爪子内峰值检测的问题上收到的答案,我希望有更先进的解决方案来对爪子进行分类.特别是因为每个单独的爪子的压力分布和其进展是不同的,几乎像指纹.我希望有一种方法可以使用它来聚集我的爪子,而不是按照发生的顺序对它们进行排序.

替代文字

所以我正在寻找一种更好的方法来用相应的爪子对结果进行排序.

对于接受挑战的任何人,挑选了一个包含所有切片阵列的字典,其中包含每个爪子的压力数据(通过测量捆绑)和描述其位置的切片(板上和时间上的位置).

为了澄清:walk_sliced_data是一个包含['ser_3','ser_2','sel_1','sel_2','ser_1','sel_3']的字典,它们是测量的名称.每个测量包含另一个字典,[0,1,2,3,4,5,6,7,8,9,10](例如来自'sel_1'),表示提取的影响.

另请注意,可以忽略"假"影响,例如部分测量爪子的位置(空间或时间).它们只是有用,因为它们可以帮助识别模式,但不会被分析.

对于任何有兴趣的人,我都会在博客上保留有关该项目的所有更新!

python image-processing

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

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

System.Drawing.Image.

如果图像宽度或高度超过最大值,则需要按比例调整大小.调整大小后,需要确保宽度或高度都不超过限制.

宽度和高度将调整大小,直到它不会自动超过最大值和最小值(可能的最大尺寸)并保持比率.

.net c# gdi+ image-processing winforms

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

将RGB转换为灰度/强度

当从RGB转换为灰度时,据说应该应用通道R,G和B的特定权重.这些重量为:0.2989,0.5870,0.1140.

据说,其原因是人类对这三种颜色的感知/敏感性不同.有时也会说这些是用于计算NTSC信号的值.

但是,我没有在网上找到这方面的好参考.这些价值观的来源是什么?

另请参阅以前的这些问题:此处此处.

language-agnostic rgb colors image-processing computer-vision

119
推荐指数
5
解决办法
17万
查看次数

对于具有数百万像素的2D无盒装像素阵列,建议使用什么Haskell表示?

我想解决Haskell中的一些图像处理问题.我正在使用数百万像素的双色调(位图)和彩色图像.我有很多问题:

  1. 我应该在什么基础上选择Vector.UnboxedUArray?它们都是未装箱的阵列,但Vector抽象似乎大量宣传,尤其是循环融合.是Vector总是更好?如果没有,我何时应该使用哪种表示?

  2. 对于彩色图像,我希望存储16位整数的三元组或单精度浮点数的三元组.为此目的,是Vector或者UArray更容易使用?性能更高?

  3. 对于双色调图像,我需要每像素仅存储1位.是否有预定义的数据类型可以通过将多个像素打包成一个单词来帮助我,或者我是靠自己?

  4. 最后,我的数组是二维的.我想我可以处理由表示强加的额外间接作为"数组数组"(或向量向量),但我更喜欢具有索引映射支持的抽象.任何人都可以从标准库或Hackage推荐任何东西吗?

我是一名功能程序员,不需要变异:-)

arrays haskell bitmap image-processing

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

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

我应该在Node.JS上使用哪个库进行服务器端图像处理?

我在Node.JS wiki上找到了一个相当大的可用库列表,但我不确定哪些更成熟并提供更好的性能.基本上我想做以下事情:

  1. 从外部源将一些图像加载到服务器
  2. 把它们放在一块大帆布上
  3. 裁剪并掩盖它们
  4. 应用一两个过滤器
  5. 调整最终图像的大小并给出一个链接

如果节点包在Linux 和Windows上都能正常工作,那就太大了.

javascript image-manipulation image image-processing node.js

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