小编Pul*_*gar的帖子

作为键的向量如何在 C++ 内部工作?

这个 SO 答案说STL Map with a Vector for the Key该向量可以用作键。所以当我们使用向量作为键时。这实际上是如何工作的,因为键需要是唯一的,所以当我们插入另一个具有相同元素的向量时,会map逐个元素检查重复元素还是向量的名称确实指定了一些东西?就像数组的名字代表基地址一样。因此数组可以用作键,因为在这种情况下基地址可以用作键,但是在向量的情况下键是什么。它是如何在内部工作的。

因为当我打印向量的名称时,我确实收到错误

vector<int> v;
cout<<v; //error
Run Code Online (Sandbox Code Playgroud)

c++ arrays dictionary stl vector

14
推荐指数
2
解决办法
648
查看次数

使用opencv获取图像中所有文本的位置

我有一张包含文本(数字和字母)的图像。我想获取此图像中所有文本和数字的位置。我也想提取所有文本。

在此处输入图片说明

如何获取图像中的坐标以及所有文本(数字和字母)。例如 10B、44、16、38、22B 等

python opencv machine-learning image-processing deep-learning

12
推荐指数
2
解决办法
2513
查看次数

使用 YOLO 或其他图像识别技术来识别图像中存在的所有字母数字文本

我有多个图像图表,所有这些图表都包含作为字母数字字符的标签,而不仅仅是文本标签本身。我希望我的 YOLO 模型能够识别其中存在的所有数字和字母数字字符。

我如何训练我的 YOLO 模型来做同样的事情。数据集可以在这里找到。https://drive.google.com/open?id=1iEkGcreFaBIJqUdAADDXJbUrSj99bvoi

例如:查看边界框。我希望 YOLO 检测文本所在的位置。但是目前没有必要识别其中的文本。

在此处输入图片说明

对于这些类型的图像也需要做同样的事情 在此处输入图片说明 在此处输入图片说明

图片可以在这里下载

这是我使用 opencv 尝试过的,但它不适用于数据集中的所有图像。

import cv2
import numpy as np
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Users\HPO2KOR\AppData\Local\Tesseract-OCR\tesseract.exe"

image = cv2.imread(r'C:\Users\HPO2KOR\Desktop\Work\venv\Patent\PARTICULATE DETECTOR\PD4.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
clean = thresh.copy()

horizontal_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (15,1))
detect_horizontal = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, horizontal_kernel, iterations=2)
cnts = cv2.findContours(detect_horizontal, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
    cv2.drawContours(clean, [c], -1, 0, 3) …
Run Code Online (Sandbox Code Playgroud)

python opencv machine-learning deep-learning yolo

12
推荐指数
3
解决办法
2834
查看次数

在python中读取.dat文件

我有一个 .dat 文件,我不知道它是如何创建的,使用了什么分隔符以及有关它的任何详细信息。我只有相应的 mdf 和 csv 文件。就这样。python中有什么方法可以读取这个.dat文件吗?

我尝试过的几种方法:

file = "736_2_PerformanceCurve_(23_0C)_(13_5V).dat"
datContent = [i.strip().split() for i in open(file, encoding='latin1').readlines()]
datContent
Run Code Online (Sandbox Code Playgroud)

这给出了输出

[['|CF,2,1,1;|CK,1,3,1,1;'],
 ['|NO,1,7,1,0,,0,;'],
 ['|NL,1,10,1252,0x407;'],
 ['|CT,1,41,0,6,Bench#,24,Korrosionstest', '15A046-01,0,;'],
 ['|CT,1,30,0,11,StartOfTest,8,06/30/17,0,;'],
 ['|CT,1,58,0,10,ResultPath,36,c:\\korrosionstest\\daten\\#170161-OR02,0,;'],
 ['|CT,1,59,0,11,GraphicPath,36,c:\\korrosionstest\\daten\\#170161-OR02,0,;'],
 ['|CT,1,31,0,15,GraphicBaseName,5,736_2,0,;'],
 ['|CT,1,26,0,10,PartNumber,5,736_2,0,;'],
 ['|CT,1,31,0,9,VA-Nr.', 'GS,11,170161-OR02,0,;'],
 ['|CT,1,62,0,9,VA-Nr.',
  'CC,42,TO_ENV_2017_G2_C1_Platform_CC-122164-03-08,0,;'],
 ['|CT,1,24,0,6,Tester,8,Behrendt,0,;'],
 ['|CT,1,32,0,15,Test', 'Department,6,GS/ETR,0,;'],
 ['|CG,1,5,1,1,1;'],
 ['|CD,1,16,1E-2,1,1,s,0,0,0;'],
 ['|NT,1,27,30,', '6,2017,14,25,15.8050001;'],
 ['|CC,1,3,1,1;'],
 ['|CP,1,16,1,2,4,16,0,0,1,0;'],
 ['|Cb,1,33,1,0,1,1,0,11718,0,11718,1,5E-3,0,;'],
 ['|CR,1,30,1,6.103888176768602E-3,0,1,1,A;'],
 ['|CN,1,28,0,0,0,16,ai_iB1_Strom_ECU,0,;'],
 ['|CG,1,5,1,1,1;'],
 ['|CD,1,16,1E-2,1,1,s,0,0,0;'],
 ['|NT,1,27,30,', '6,2017,14,25,15.8050001;'],
 ['|CC,1,3,1,1;'],
 ['|CP,1,16,2,2,4,16,0,0,1,0;'],
 ['|Cb,1,37,1,0,2,1,11718,11718,0,11718,1,5E-3,0,;'],
 ['|CR,1,30,1,3.662332906061161E-3,0,1,1,V;'],
 ['|CN,1,31,0,0,0,19,ai_iB1_Spannung_UBB,0,;'],
Run Code Online (Sandbox Code Playgroud)

对应的csv文件

[![在此处输入图像描述][1]][1]

编辑 :

from asammdf import MDF
dat_file = r"C:\Users\HPO2KOR\Desktop\Work\data1.dat"
mdf_file = r"C:\Users\HPO2KOR\Desktop\Work\data1.mdf"
df = mdf.to_dataframe()
mdf = MDF(mdf_file)
df.head()
Run Code Online (Sandbox Code Playgroud)

这给了我 [![在此处输入图像描述][2]][2]

如何从 …

python regex mdf file-handling

6
推荐指数
1
解决办法
6349
查看次数

将字符串分配给 char 指针是有效的,但将整数分配给 int 指针在 C 中无效。为什么?

可以为字符指针分配任意字符串,但不能为整数指针分配整数。由于它们都是指针并包含地址。为什么在动态分配之前将 C 中的字符串分配给指针有效但整数无效。

#include<stdio.h>

int main()
{
        char *s = "sample_string"; // valid
        printf("%s\n", s);
        int *p = (int)5; // invalid
        printf("%d\n", *p);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

sample_string
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

背后的原因是什么?虽然它们在 C++ 中都是无效的。

c pointers character dynamic-memory-allocation

0
推荐指数
1
解决办法
116
查看次数