如何计算弹簧线圈的圈数?
参考:如何检测和计算螺旋的转弯 即使在基于像素的计算中,我也无法获得计数. 如果我附上了图像,如何从计数转弯开始. 我尝试了FindContours();但是,并没有完全隔离转弯.还有匹配形状()我具有相似性因子,但对于整个线圈. 所以我尝试了以下操作的转弯计数: public static int GetSpringTurnCount() { if (null == m_imageROIed) return -1; int imageWidth = m_imageROIed.Width; int imageHeight = m_imageROIed.Height; if ((imageWidth
14 2024-04-23
编程技术问答社区
图像分割-分割与合并(四叉树)。
是否有针对图像分割的拆分和合并方法的实现? 任何建议都将不胜感激. 解决方案 什么分割是关于? 分割意味着将图像分为几个连接的区域.基本上,您可以对区域的两个定义进行分割:您可以将区域定义为一组连接的类似像素,或一组被不连续性(边缘)包围的连接像素.拆分和合并使用第一种方法. 数学上讲:如果您的整个图像由一组像素(称为R)表示,那么您要获得的子集(例如 ) 分割已完成,因此所有子区域总和到所有区域的整个R. is r 1 u r 2 u ... u r n = r. r i 已连接. 区域是不同的. r i ∩r j =∅i,给定I≠j 区域具有相似的属性.这可以通过称为同质标准(P)的函数表示.它应该为给定地区的成员提供真实,并为所有其他地区的错误. 无法合并邻居地区.对于所有区域,p(r i u r j )= false I≠j. 什么分裂和合并算法是关于的? 因此,首先,我们必须选择一个匀浆标准.同质性标准可能是全球性的(取决于整个区域)
66 2024-04-15
编程技术问答社区
如何根据分割图对图像进行模糊处理
如果我不能很好地解释,请原谅我,因为我不是母语的人. 我正在根据分割图的白色部分来模糊图像部分.例如,这是我的分割图像(BMP图像). 现在,我想要的是模糊原始图像的一部分,其中像素在分割图中是白色的.我刚写下以下代码. mask = mask >= 0.5 mask = np.reshape(mask, (512, 512)) mh, mw = 512, 512 mask_n = np.ones((mh, mw, 3)) mask_n[:,:,0] *= mask mask_n[:,:,1] *= mask mask_n[:,:,2] *= mask # discard padded area ih, iw, _ = image_n.shape delta_h = mh - ih delta_w = mw - iw top = delta_h // 2 bottom = mh - (delta_h - top) left = delta_w // 2 right
12 2024-04-01
编程技术问答社区
SimpleITK: 如何将遮罩翻译成默认的原点、间距、方向
我正在做一个有关医疗图像细分的项目,并且难以对齐面膜和病变.我正在尝试使用SimpleITK软件包来根据其元数据纠正蒙版(.nrrd)文件.我假设所有图像具有相同的元数据(间距,方向,原点),由代码中的默认常数表示. 附加的代码无法完成我想要的事情 - 而不是将蒙版移动少量,而只是将蒙版中的每个元素设置为零.有人知道我在做什么错吗? ResampleImageFilter我需要的转换吗? 我也可以使用使用其他库的解决方案. import SimpleITK as sitk import numpy as np DEFAULT_DIRECTION = (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) DEFAULT_SPACE = (1., 1., 1.) DEFAULT_ORIGIN = (0.0, 0.0, 0.0) def projectImage(image, mask): image.SetSpacing(D
14 2024-03-07
编程技术问答社区
如何使用MATLAB追踪表面积以及平滑图像中的特定区域
我有一个带有6种颜色的图像,每个颜色指示一个值.我获得了如下所示的图像. 我需要平滑边缘,然后找出区域以及该区域的表面积.第二个图像显示了边缘绘制的黑线,这表明我需要以这种方式平滑边缘. 我曾使用分割来创建掩码,如第三张图像所示,然后使用图像之后的代码获得分段图像. 我使用以下代码来生成直到掩盖图像. 来源: imshow(Out1) str = 'Click to select initial contour location. Double-click to confirm and proceed.'; title(str,'Color','b','FontSize',12); disp(sprintf('\nNote: Click close to object boundaries for more accurate result.')); mask = roipoly; figure, imshow(mask) title('Initial MASK'); m
20 2024-03-03
编程技术问答社区
从PNG遮罩生成JSON注释文件
我已经提供了一系列图像对,以帮助进行图像分割项目.一个图像是原始的RGB照片,另一个是一个png文件,它掩盖了原始图像的部分.请参阅下面的示例. 我的图像分割培训脚本要求我为每个RGB文件有一个注释的JSON文件,显示蒙版的贝尔和坐标.例如: "label": "window", "points": [ [ 48.30337078651685, 507.9887640449438 ], [ 73.02247191011236, 510.7977528089888 ], [ 71.33707865168539, 419.7865168539326 ], [ 44.93258426966292, 42
12 2024-02-26
编程技术问答社区
如何注释图像分割的基础真相?
我正在尝试训练执行图像分割的CNN模型, 但是我很困惑,如果我有几个 图像样本? 图像分割可以将输入图像中的每个像素分类为 预定义的班级,例如汽车,建筑物,人员或任何其他类别. 是否有任何工具或一些好主意来创建地面 图像分割的真相? 谢谢! 解决方案 对于语义分割,应标记图像的每个像素.有三种解决任务的方法: 基于矢量 - 多边形,polylines 基于像素 - 刷子,橡皮 AI驱动的工具 在 servisisely 中,可以执行1,2,3的工具. 以下是两个比较多边形与AI驱动工具的视频: cars sementation 和可以找到有关主管注释特征的更多详细信息,在这里. 其他解决方案 一个浮现在 MIT Labelme Toolbox :此工具箱主要用于浏览数据集的现有标记图像,但也可以选择新图像. 有Alos 这个github存储库 for 可可 ui您可能会发现有用. 其他解决方案 尝试 很多代码是
10 2024-02-26
编程技术问答社区
关于在java中使用hough圆检测虹膜和瞳孔圆的opencv
我正在使用Java中的OpenCV尝试检测有眼睛的图像中的圆圈(Iris和Pupil),但我没有得到预期的结果. 这是我的代码 // convert source image to gray org.opencv.imgproc.Imgproc.cvtColor(mRgba, imgCny, Imgproc.COLOR_BGR2GRAY); //fliter org.opencv.imgproc.Imgproc.blur(imgCny, imgCny, new Size(3, 3)); //apply canny org.opencv.imgproc.Imgproc.Canny(imgCny, imgCny, 10, 30); //apply Hough circle Mat circles = new Mat(); Point pt; org.opencv.imgproc.Imgproc.HoughCircles(imgCny, circles, Imgproc.C
26 2024-02-18
编程技术问答社区
华为MLKIT ImagesseMentaion返回null值
我正在使用华为SDK从图像中删除背景. 案例1: 使用 com.huawei.hms:ml-computer-vision-segmentation:2.0.4.300 一切正常,但是Google Play商店拒绝应用程序 您的应用包含不符合设备和网络滥用策略的内容.我们发现您的应用程序正在使用不合格的华为移动服务SDK SDK,其中包含用于从Google Play外面未知来源下载或安装应用程序的代码. 鉴于SDK的性质,请将其从提交给Play商店的应用的版本中删除. 案例2: 使用 com.huawei.hms:ml-computer-vision-segmentation:3.5.0.303 此更新版本然后Google Play商店批准了我的应用,但在删除的图像前景高度和宽度上获得了无指针异常. 我的代码是 public void addSelectedBackground(MLImageSegmentation mlImageSegm
U2Net模型在安卓中的应用
我通过遵循以下 instructuctions 但是,我在Tensrflow Lite中使用Android遇到了麻烦,我无法使用 tflite-support脚本全部是D1,D2,...,D7).然后成功添加了元数据,我能够使用该模型,但是它没有给出任何输出并返回相同的图像. 因此,任何帮助都将不胜感激,让我知道我在哪里搞砸了,我该如何使用此U2NET模型在Android的TensorFlow Lite中正确使用此u2net模型,谢谢. 解决方案 我会在这里写一个很长的答案.与U2NET的GitHub仓库取得联系,它使您努力检查预处理和后处理步骤,以便您可以在Android项目中进行相同的操作. 首先,预处理: 在u2net_test.py文件中,您可以在else: # with rgb color (flag = 0) tmpImg = np.zeros((image.shape[0],image.shape[1],3)) image = image/np.max(
12 2024-02-05
编程技术问答社区
在android studio中,Opencv导入highgui显示错误。无法解决(我添加了库,但错误仍然存在)。
i具有以下代码,用于使用grabcut opencv进行图像分割.我是第一次使用OpenCV.我添加了OpenCV库.尽管其他人工作得很完美,但仍显示出无法解决的符号.我需要添加其他东西. (如果您也可以帮助我处理代码,将是其他帮助) 这是代码: 编辑:我发布了更新的代码: package com.example.android.seg; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import java.io.IOException; import org.opencv.android.OpenCVLoader; import org.opencv.android.Utils; import o
16 2024-02-03
编程技术问答社区
数一数蜥蜴的鳞片
我的一位生物学家朋友问我是否可以帮助他制定一个计划计算蜥蜴的Squama (这是正确的翻译?). 他给我发送了一些图像,我在Matlab上尝试了一些事情.对于某些图像,它比其他图像要困难得多,例如,当有更黑暗(黑色)区域时.至少使用我的方法.我敢肯定,我可以在这里获得一些有用的帮助.我应该如何改进?我采取了正确的方法吗? 这些是一些图像. 我通过关注这是代码: img0=imread('C:...\pic.png'); img1=rgb2gray(img0); %The output image BW replaces all pixels in the input image with luminance greater than level with the value 1 (white) and replaces all other pixels with the value 0 (black). Specify level in the range [
使用平均移动进行图像分割的解释
任何人都可以帮助我了解卑鄙的轮班细分实际上是有效的吗? 这是我刚刚编造的8x8矩阵 103 103 103 103 103 103 106 104 103 147 147 153 147 156 153 104 107 153 153 153 153 153 153 107 103 153 147 96 98 153 153 104 107 156 153 97 96 147 153 107 103 153 153 147 156 153 153 101 103 156 153 147 147 153 153 104 103 103 107 104 103 106 103 107 使用上面的矩阵可以解释均值偏移分割如何将3个不同级别的数字分开? 解决方案 基础知识首先:
24 2024-01-22
编程技术问答社区
用K-means聚类法准确地检测图像中的颜色区域
我在基于颜色的图像分割中使用K-均值聚类.我有一个2D图像,有3种颜色,黑色,白色和绿色.这是图像, 我希望k-均产生3个簇,一个代表绿色区域,第二个代表白色区域,最后一个代表黑色区域. 这是我使用的代码, %Clustering color regions in an image. %Step 1: read the image using imread, and show it using imshow. img = (imread('img.jpg')); figure, imshow(img), title('X axis rock cut'); %figure is for creating a figure window. text(size(img,2),size(img,1)+15,... 'Unconventional shale x axis cut', ... 'FontSize',7,'HorizontalAlig
10 2024-01-08
编程技术问答社区
OCR中的草书字符分割
我已经完成了OCR application的handwritten normal characters.这成功适用于普通英语字符. 我已将水平投影用于线段和垂直投影进行角色分割. 对于草皮手写文章的段线,我可以使用水平投影作为以前的水平投影.但是我不能使用相同的方法来进行草书的英语角色分割,因为它们彼此合并并也倾斜.任何人都可以用一种方法来帮助我. 解决方案 这是一个很难解决的问题,这是由于作家和角色形状之间的差异.一种最多达到83%精度的选项是分析写作中的连接(字符之间的连接),并使用这些连接作为基点来分析图像上的列.在2013年,Procedia计算机科学提出了这种方法,并发表了他们对这个特定问题的研究:另一种尝试的方法称为骨骼分析,该骨骼分析将单词作为一个整体并与其他已知单词形状匹配,并根据整个图像进行预测. 祝你好运!
10 2023-11-20
编程技术问答社区
点中的图像梯度
我正在处理图像分割.我需要在这一点上计算图像梯度,所以我试图自己理解(因为我知道如何在具有普通方程式时计算梯度),但是我失败了.我在谷歌搜索...谷歌搜索,但要找到赖特的答案,我做不到. 任何人都可以说或提供一些信息如何在点逐步计算图像梯度? 解决方案 图像I(x, y)的每个像素上的梯度只是2D向量(dI/dx,dI/dy)(x, y).近似dI/dx和dI/dy具有中心有限差: dI/dx(x, y) = (I(x + 1, y) - I(x - 1, y)) / 2 = (I(x + 1, y) - I(x, y) + I(x, y) - I(x - 1, y)) / 2 dI/dy(x, y) = (I(x, y + 1) - I(x, y - 1)) / 2 = (I(x, y + 1) - I(x, y) + I(x, y) - I(x, y - 1)) / 2
6 2023-11-17
编程技术问答社区
车辆细分和跟踪
我已经从事一个项目了一段时间,以从UAV捕获的视频中检测和跟踪(移动)车辆,目前,我正在使用经过培训的SVM,以从车辆中提取的本地功能进行培训背景图像.然后,我正在使用滑动窗口检测方法尝试并将车辆定位在图像中,然后我想跟踪.问题在于,这种方法要慢得多,而且我的探测器并不像我想要的那样可靠,因此我得到了很多误报. 因此,我一直在考虑尝试将汽车从后台细分以找到大约位置,以便在应用分类器之前减少搜索空间,但是我不确定该如何解决,并希望有人能提供帮助? 此外,我一直在阅读有关使用层的运动细分,使用光流通过流模型进行框架进行分割,任何人都有这种方法的经验,如果可以的话,您是否会提供一些输入,就像您认为此方法是否会这样适用于我的问题. 以下是示例视频的两个帧 帧0: 框架5: 解决方案 假设您的汽车在移动,您可以尝试估算地面平面(路). 您可能会通过提取特征(冲浪而不是筛分,以速度)获得下降地面平面估算值,将它们与框架对匹配,并使用RANSAC求解同型,因为根据
34 2023-10-24
编程技术问答社区
使用Keras的多类图像分割中的加权样本
我正在使用基于UNET的模型对生物医学图像进行图像分割.每个图像为224x224,我有四个类,包括背景类.每个掩码的大小为(224x224x4),因此我的生成器会创建批量的大小(16x224x224x4).我将蒙版的值重铸为1或0,因此对于相关的通道中,每个类A 1的值都存在.图像还通过1/255缩放.我在训练期间使用骰子分数作为性能指标,而1滴分数作为损失功能.在培训期间,我似乎的分数最高为0.89,但是我发现,当我预测测试集时,我一直在预测背景类别.我只在几百张图像上训练10个时代(尽管我确实可以访问更多),这可能会影响模型,但我认为我仍然可以预测其他课程问题是班级失衡.通过在线查找sample_weight参数可能是答案,但我不确定我是如何实现实际权重部分的?大概我需要在模型中的某个时刻使用一层将权重应用于像素数组,但我不确定如何.任何帮助会不胜感激吗? class DataGenerator(keras.utils.Sequence): def __init__(
18 2023-10-19
编程技术问答社区
from_logits=True和from_logits=False得到不同的tf.loss训练结果。UNet的分类交叉熵
我正在使用UNET进行图像语义分割作业,如果我为最后一层设置Softmax Activation: ... conv9 = Conv2D(n_classes, (3,3), padding = 'same')(conv9) conv10 = (Activation('softmax'))(conv9) model = Model(inputs, conv10) return model ... 然后使用loss = tf.keras.losses.CategoricalCrossentropy(from_logits=False) 即使仅适用于一个训练图像,培训也不会收敛. 但是,如果我没有为最后一层设置Softmax Activation: ... conv9 = Conv2D(n_classes, (3,3), padding = 'same')(conv9) model = Model(inputs, conv9) return model ... 然后使
32 2023-10-19
编程技术问答社区