I want to use Azure Computer Vision API to generate thumbnails对于我的WordPress网站.我正在尝试使用WP_Remote_post在PHP中起作用,但是我不知道如何解析参数?它返回质量非常差的缩略图和默认的500x500px.关于如何解决此问题的任何想法? function get_thumbnail($URL) //* * * * Azure Computer Vision API - v1.0 * * * * { $posturl='https://api.projectoxford.ai/vision/v1.0/generateThumbnail'; $request = wp_remote_post($posturl, array( 'headers' => array( 'Content-Type' => 'application/json', 'Ocp-Apim-Subscri
以下是关于 computer-vision 的编程技术问答
如何使用OpenCV在图像中检测热点?我尝试过谷歌搜索,但无法获得线索. 描述: 我需要从实时视频流中过滤良好的图像.在这种情况下,我只需要在框架中检测热点即可.我需要在OpenCV中执行此操作. 什么是热点? 热点是受试者脸上有光泽的区域,这是由闪光反射出光泽表面或不均匀照明引起的.它往往会使主题看起来好像在出汗一样,这不是一个好外观. 更新: 在图像/中 以上两个链接也可以为我的帖子提供帮助? 带有热点的图像: 没有热点的图像: 解决方案 可以通过高斯过滤获得这些"热点"区域的自动粗糙指示,然后进行二进制.期望"热点"比周围的区域更明亮,因此在高斯过滤之后,它们至少会略微突出显示,同时,由于低通滤波的性质,图像伪像降低了. 示例结果如下.在简单转换为灰度之后,在0.75处的二进化(范围始终为[0,1]),在HSB colorspace的通道中进行高斯过滤后,二进制为0.85. 在这两种情况下,由于"热点"的假设不太大.
我已经搜索了大约几次,但是我没有得到直接的答案.我有一个矩阵,我想与离散过滤器进行卷积(例如,用于边缘检测的SOBEL操作员).是否可以使用iPhone上的OpenGL ES加速进行此操作? 如果是,如何如何?如果不是这样,我还可以使用其他高性能技巧来加快操作吗?可以快速执行的手臂组件操作?最终,我想在iPhone的ARM处理器上尽可能快地进行卷积. 解决方案 您应该能够使用OpenGL ES 2.0下的可编程着色器进行此操作.我在 尽管我自己没有完成图像卷积,但我描述了一些Mac和ios的GPU加速图像处理,在这里.我提出自写这篇文章以来,我已经创建了一个但是,如果您要在CPU上执行此操作,则可以使用 ACCELERATE框架在iPhone的霓虹灯SIMD单元上运行一些操作.特别是,FFT操作(通常是图像卷积过滤器中的关键组件,或者我听到的)可以通过使用Apple提供的例程来获得〜4-5x的加速.
几天前,我开始使用新的opencv-python接口,cv2. 我的问题是关于cv和cv2接口的比较. 关于易用性,新的cv2接口的改善远大了,与cv2一起工作确实很容易且有趣. . 但是速度呢? 我制作了两个小型代码snipplet,一个在cv中,另一个在cv2中进行检查,以检查性能.两者都执行相同的功能,访问图像的像素,对其进行测试,进行一些修改等 . 以下是代码: cv2 interface : import time import numpy as np import cv2 gray = cv2.imread('sir.jpg',0) width = gray.shape[0] height = gray.shape[1] h = np.empty([width,height,3]) t = time.time() for i in xrange(width): for j in xrange(height): i
我正在寻找将口罩(高度X宽度布尔图像)转换为一系列边界框(请参阅下面的示例图片,我手工drew的示例图)的方法,并带有包围"真相之岛"的框. 具体来说,我正在寻找一种可以与标准Tensorflow OPS一起使用的方法(尽管欢迎所有输入).我想要这个,这样我就可以将模型转换为TFLITE,而无需添加自定义操作和从源头进行重新编译.但是总的来说,很高兴意识到这样做的不同方式. 注意: 我已经有了一个涉及非标准tensorflow的解决方案,基于 tfa.image.connected_components (请参阅解决方案).但是,该OP不包括在Tensorflow Lite中.这也感觉到它做的事情比必要的要难得多一些(查找连接的组件比仅仅概述图像上的斑点而不必担心它们是否连接更难) 我知道我在这里还没有完全指定 我想生成的盒子(例如,即使它们是否也应该具有单独的盒子,即使它们是否也应该具有单独的盒子重叠等).真的,我不担心细节,只是结果盒看起来"合理". 一
我使用K-均值聚类在此流量标志上进行分割,如下所示. 这些是我的代码 阅读图像和模糊 img = cv.imread('000_0001.png') img_rgb = cv.cvtColor(img, cv.COLOR_BGR2RGB) kernel_size = 5 img_rgb = cv.blur(img_rgb, (kernel_size, kernel_size)) # reshape img_reshape = img_rgb.reshape((-1, 3)) img_reshape = np.float32(img_reshape) 执行K-均值聚类 criteria = (cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER, 10, 1.0) K = 4 attempts = 10 ret, label, center = cv.kmeans(img_reshape, K, None, cri
我有一个带有圆形标记物的标记机器人,从不同的角度出发,如下所示:(圆形白环是标记) 我想匹配两个图像中的标记,通过匹配,我的意思是,第一张图像的bottommost标记应视为第二张图像的底部大多数标记的对应点,依此类推. 图像中给出的手指状机器人可以在空间中给出的任何方向弯曲(也可以以U样的方式弯曲). 如果有帮助,相机的几何形状是固定并事先知道的. 我迷路了,因为简单的对应算法是行不通的,因为这些观点截然不同.我应该如何匹配这两个图像? 解决方案 不幸的是,您没有匹配点,而是匹配曲线.您可能会尝试将椭圆形安装在戒指上,并带上椭圆中心以匹配积分. 这是一个近似值,因为圆的中心并不完全像椭圆的中心一样,但我认为这不会是主要的错误来源:正如您只看到半个圆圈,拟合不会那么准确. 如果所有九个圆圈保持可见并垂直排序,则中心的匹配是微不足道的.如果他们没有订购,但不要形成循环,则可以从最低点开始并遵循最近的邻居的链. 其他解决方案 您可以这样开始: 您知道每
我正在研究一个图像搜索引擎的项目.背后的逻辑是,数据库中将有一些图像,用户将输入一个新图像,并且将与数据库中存储的图像匹配.结果将是查询映像的最接近匹配列表,其中包括数据库中的存储图像. 图像是邮票.现在的问题是有新的邮票和二手邮票.新只是邮票图像,使用的是其中一部分被黑色取消标记遮盖,因此它不可能是完美的匹配. 这里很少有(新的和已使用的)样本: 我使用了各种措施,例如compare_mse,compare_ssim和compare_nrmse.但是它们都倾向于差异.我还使用了 https://github.com/edjolabs/edjolabs/edjolabs/image-match-match-match-match-match-matchm 它的相似性得分也很低. 你们认为我要使用一些预处理或其他东西吗?我还从图像中删除了黑色边界,但是结果更好,但并不令人满意.我已经将它们转换为灰度并匹配,但仍然没有令人满意的结果.关于如何获得高相似性分数的任何建议
我有带有黄色标记的机器人的图像 显示的黄点是标记.有两个摄像机用于查看以90度的偏移.机器人在相机之间弯曲.可以转介设置的粗略示意图. https://i.stack.imgur.com/avydq.png 使用两个摄像机,我能够获得黄色标记的3D坐标.但是,我需要找到机器人中心点的3D-CO-ORIDNATE,如图所示. 我需要找到圆柱机器人内部的红色标记点的3D位置.首先,这甚至是可行的吗?如果是,我可以使用什么方法来实现这一目标? 作为奖励,是否有任何文献找到我可以参考的内部点的3D位置(我搜索了,但找不到与我的询问相似的东西). 我也欢迎使用理论解决方案(只要它确保在合理错误中找到中心点),我稍后可以将其转换为代码. 解决方案 我能够通过将椭圆形拟合到可见的弧线上来提取中点.椭圆的质心是所需的中点. 也会有错误的椭圆,可以忽略.提取椭圆的步骤是: 提取标记 二进制和骨骼 将椭圆形适合弧线(为此找到MATLAB函数)
这是一个理论上的问题,但是我想知道当图像中有多行要检测到多行时,一个人如何随机选择点.在我到目前为止我已经看到的大多数示例中,似乎只有一行可检测到一行,而且似乎很容易.但是,我不确定如何将其扩展以检测更多点的多行. 解决方案 我认为您正在基本的误解. RANSAC只是一种将一些数据点列为两个类的算法:由给定参数模型进行了很好的预测的算法,而那些则没有. "得到良好预测"的属性是根据损失函数("错误")表示的,该损失函数均取决于模型参数和数据点. . 重读上述段落,然后问问自己:我有一个参数模型表达了一系列行吗?如果是,请继续安装.但是,如果您的模型只能处理单行,则应首先将数据集分为本身可能属于一行的部分,然后将RANSAC应用于每个部分. 在某些(简单)的情况下,可以迭代进行:首先在单行模型上使用RANSAC来查找适合一行的数据段,从数据集中删除其段,然后在其余点上迭代. 其他解决方案 RANSAC仅在要检测单个嵌入式模型时就可以很好地工作,正如France
给定二进制图像,将图像转换为RGB然后修改其像素的最快和Pythonic的方法是什么? 我有这两种方式,但他们对我不好 def get_mask(rgb_image_path): mask = np.array(Image.open(rgb_image_path).convert('L'), dtype = np.float32) # Mask should be Grayscale so each value is either 0 or 255 mask[mask == 255.0] = 1.0 # whereever there is 255, convert it to 1: (1 == 255 == White) return mask def approach1(mask): mask = np.logical_not(mask) mask = mask.astype(np.uint8) mask = mask
我的图像具有一定的聚集线/多孔的组合.我的目的是恢复沿这些polyline/polycurves的有序点列表. 使用openCV connectedComponents i可以隔离图像中的每一个这些各个曲线/曲线,然后我尝试通过以下步骤获得有序的点序列: num_labels, labels_im = cv2.connectedComponents(input_image) ske = skimage.morphology.skeletonize(labels_im==1) x,y =np.where(ske) cnt = np.vstack([x,y]).T.reshape(-1, 1, 2) recovered_points = cv2.approxPolyDP(cnt, 100, False) 但是,恢复_points中的点不沿原始层次遵循,它们是原始多线线上的点,但按栅格顺序,从let到右,下到顶
我的图像具有自由形式的曲线线(实际上是小线段列表),我想生成某种形式的图像 - 磁盘,以使图像以这些曲线为单位的方式变形图像变形为水平直线. i已经有分别存储的所有线段点的坐标,因此不必从图像中提取它们.我正在寻找的是一种适当的扭曲图像的方法,使这些线被扭曲成直. 谢谢 解决方案 您可以使用与此处开发的方法相似的方法: .ac.jp/〜takeo/research/arig/ 您要做的是定义控制点的MXN网格,该网格涵盖了您的源图像. 然后,您需要确定如何修改每个控制点,以使最终图像最小化某些能量函数(最小曲率或这种内容). 最终图像是由您的控制点确定的线性经线(将其视为2D网格,其纹理是您的源图像,并且您将要修改其顶点的位置). 只要可以使用线性方程表示您的能量函数,您就可以使用线性方程求解器在全球范围内解决问题(弄清楚每个控制点). 您使用其周围网格点的双线性插值权重表达每个源点(位于弯曲线上的源点),然后您通过编写这些点的方程来表达对目标
我试图使用多带混合物将两个预击图像无缝地缝合在一起.我有两个输入图像(已经扭曲了)和一个掩码.但是,当我应用MBB时,接缝周围的区域发光的亮度明亮,因此它们变得更加明显,这与这里的目标相反.我绝对不知道我在做什么错. 更好地解释问题,以下是图像和输出: 目标: 来源: mask: ,一旦我将源图像融合到目标中,这就是我得到的: 这是我的代码供参考: import cv2 as cv2 import numpy as np import sys def blend(A, B, m, canvas, num_levels=6): trimmer = cv2.bitwise_or(canvas, m) # to trim the blurry edges around the image after blending m[m == 255] = 1 GA = A.copy() GB = B.copy() GM
我正在使用OpenCV函数进行一些实验 cv2.warpperspective 当我决定从头开始编码以更好地了解其管道时.尽管我遵循(希望)每个理论步骤,但似乎我仍然缺少一些东西,我正在努力了解什么.你能帮我吗? src image(左)和true dst Image(右) # Invert the homography SRC->DST to DST->SRC hinv = np.linalg.inv(h) src = gray1 dst = np.zeros(gray2.shape) h, w = src.shape # Remap back and check the domain for ox in range(h): for oy in range(w): # Backproject from DST to SRC xw, yw, w = hinv.dot(np.array([ox, oy, 1]).T) # cv2.INTER_NEAREST x, y = int
我正在研究硬币识别项目. 我被卡住的第一件事是从图像中正确提取的硬币,即使是从非常简单的图像中提取的. 有很多用于硬币检测的良好工作方法,但所有这些方法都在申请后需要手动检查.我已经测试了其中两个: cv2.houghcircles and Threshold and findig countors之后. 在这里一些成功的处理示例: cv2.houghcircles,良好的结果 cv2.houghcircles,不良结果 ,但对于第二张图像,阈值和查找计数之后的很好解决方案: 类似的东西: gray = cv2.GaussianBlur(gray, (15, 15), 0) #gray = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV, 11, 1) (_,gray) = cv2.threshold(gray,0
我正在寻找算法,给定一个包含填字游戏的图像 将图像裁剪为填字游戏 区分常规 and 禁止填字游戏 提取网格大小和黑色正方形/条的位置 可以认为该填字除了图像位图以外需要任何输入. 我可以想到一些执行此操作的蛮力多通道(本质上是使用ImageMagick的撞击过滤器然后在图像上循环寻找剩余的点),但我希望从真正了解图像处理的人那里得到更好的想法. 解决方案 使用链接填字游戏的屏幕截图为例,我假设是: 填字游戏网格酥脆,即水平和垂直网格线以精确像素绘制,带有恒定的深色,网格单元内没有噪音, 填字 线索号写在左上角, 填字游戏是矩形和规则的. 然后,您可以从上到下扫描图像以找到足够长度的水平黑线.一条线从黑色像素开始,并以白色像素结束.其他像素是指示它不是线的指示. (这是为了淘汰文本和按钮.)对垂直线路做同样的事情. 理想情况下,您现在拥有填字游戏线.如果您的图像未裁剪到填字游戏中,则可能会有误报,例如按钮边框.要找到填字游戏线,请按长度对
我在图像聚类的相似性的情况下面临着一个图像群集的问题,而不知道簇的数量.理想情况下,我想取得类似于此/cnnvis/tsne.jpeg (/这张照片是卷积神经网络的结果,它代表了它所学的组) 因为我对他们的分类不感兴趣(我不知道课程),所以我对它们的"视觉"属性很感兴趣:颜色,形状,渐变等. 我发现了许多文章,这些文章暗示了诸如DBSCAN,T-SNE甚至K-均值之类的算法,但是有更好的解决方案吗?有建议使用猪转换,但说实话,不知道如何将其拼接在一起. 因此,摘要,我如何根据其颜色和形状属性分离(在2D平面,分为组,文件夹等)图像? 解决方案 T-SNE实际上非常适合您尝试做的事情. t分布的随机邻居嵌入(T-SNE)是一个 (获奖)缩小维度的技术 特别适合可视化高维 数据集. 您可以阅读更多有关它的信息一如既往的sklearn具有非常友好的快速尝试. 我希望这会有所帮助... 其他解决方案 不幸的是,图像语义维度 远高于2D.甚至无限高.您