小编nat*_*ncy的帖子

如何修复不完整的网格单元并修复图像中的缺失部分

我使用霍夫线来获得此图像中水平线和垂直线的交点:

在此处输入图片说明

但是随着网格单元数量的增加,复杂性会显着增加。

有没有什么简单的方法可以在不使用线检测的情况下完成网格?

谢谢你。

image image-processing cell computer-vision

2
推荐指数
1
解决办法
271
查看次数

如何使用 OpenCV 在图像上标记数字并绘制圆圈

我有代码来计算图像中管道的数量。它基本上显示图像中管道的总数。这是代码

# import Libraries
import cv2
import numpy as np
import matplotlib.pyplot as plt

#load image
image=cv2.imread("enhanced.sample3.png")
#cv2.imshow("figure",image)
cv2.waitKey(0)
#create blob detector
detector=cv2.SimpleBlobDetector_create()
#keypoints
keypoints=detector.detect(image)
#create a blank file which is a numpy array to hold our circle that we will detect and mark during the process
blank = np.zeros((1,1))
blobs = cv2.drawKeypoints(image, keypoints, blank, (0,0,255),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

number_of_blobs = len(keypoints)
text = "Total Number of Blobss: " + str(len(keypoints))
cv2.putText(blobs, text, (2, 55), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255,255,255), 2)

# Display image with …
Run Code Online (Sandbox Code Playgroud)

python opencv image image-processing matplotlib

2
推荐指数
1
解决办法
2595
查看次数

使用 Python 将颜色图/渐变图应用到图像

大多数图像编辑软件都具有渐变图功能。渐变贴图采用给定像素的亮度并根据亮度应用颜色渐变。Photoshop 和其他软件有办法自动执行此操作,但它们不能完全满足我的要求,所以我认为 Python 可能可以解决这个问题。不幸的是,当我使用 Python 搜索渐变图或颜色图时,我很难理解或应用出现的任何结果。

渐变图

我发现的所有潜在解决方案线程都使用了 numpy 或 matplotlib,其中有很多数学线超出了我的想象......我希望得到一些帮助。最初我对处理有一些了解,但我发现使用处理导出大量图像的任务很奇怪而且很棘手。另外,我喜欢 Python,并且想学习如何用它编辑和生成艺术作品。

这就是我现在正在做的事情。

from PIL import Image

myPalette = ['#1A1423', '#684756', '#AB8476']

def colorMap(pixel, palette): 
    # Calculate the brightness of pixel 
    R, G, B = pixel 
    brightness = sum([R, G, B])/3
 
    # Map gradient of colors to brightness
    # ???...
    
    return mappedColor

 
img = Image.open('image_input.png') 
pixels = img.load()
 
for x in range(img.size[0]): 
    for y in range(img.size[1]): 
        pixel = img.getpixel((x, y)) 
        pixels[x, y] = colorMap(pixel, myPalette)
 
img.save('image_output.png')
Run Code Online (Sandbox Code Playgroud)

加载、计算亮度和保存都很容易。我只是不知道如何将调色板的渐变应用于像素。

python image colors image-processing colormap

2
推荐指数
1
解决办法
4261
查看次数

检测棋盘 OpenCV 中的方块

我在 python 中使用 OpenCV 检测到了一个棋盘:

  • 计算图像的边缘
  • 计算霍夫变换
  • 寻找霍夫变换的局部最大值
  • 提取图像线条

然后我使用了findContoursanddrawContours函数:

  im_gray = cv2.imread('redLines.png', cv2.IMREAD_GRAYSCALE)
  kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (2, 2))  
  morphed = cv2.dilate(im_gray, kernel, iterations=1)
  (ret, thresh) = cv2.threshold(morphed, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
  contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
  cv2.drawContours(thresh, contours, -1, (255, 255, 255), 3)
Run Code Online (Sandbox Code Playgroud)

效果很好,最后的 imshow 看起来像这样:

在此输入图像描述

现在,我尝试检测网格中的每个方块并将其点保存在向量中的唯一索引中。

我知道我可以使用轮廓数组来做到这一点。但是当我打印轮廓的长度时,它不断快速变化,从尺寸 2 到 112。

所以我猜它不能很好地识别网格。

任何帮助,将不胜感激。

python opencv image image-processing computer-vision

2
推荐指数
1
解决办法
1442
查看次数

如何在 Keras 序列模型上设置自定义权重?

所以我想自己为Sequentialkeras 模型设置权重。为了获得权重的数量,我将相邻层的节点数相乘。

这是我的代码:

model.add(Dense(units=3, activation='relu', input_dim=4))
model.add(Dense(3, activation='relu'))
model.add(Dense(5, activation='softmax'))

weights_count = []

weights_count.append(4*3)
weights_count.append(3*3)
weights_count.append(3*5)

weights = []

for count in weights_count:
    curr_weights = []
    for i in range(count):
        curr_weights.append(random.random())
    weights.append(curr_weights)
model.set_weights(weights)
Run Code Online (Sandbox Code Playgroud)

此代码生成此错误:

ValueError:形状必须具有相同的等级,但对于具有输入形状的“分配”(操作:“分配”)为 2 和 1:[4,3]、[12]。

为什么会这样?

python keras tensorflow

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

如何在2D Numpy数组中放置弹出/追加?

我有一个图像帧,其尺寸640x512存储为所有白色像素的Numpy数组。我想不断删除/弹出(0)最左边的列,并在每次迭代中添加一个黑列。本质上,我试图将图像从右移到左,以最终将整个图像替换为黑色像素,一次替换一列。我尝试使用,np.concatenate()但我不断遇到这两个错误。

ValueError:所有输入数组的维数必须相同

ValueError:无法将输入数组从形状(512,1)广播到形状(640)

如果可能,我想就地执行此操作。这是一个例子。

初始空白框的大小 640x512

每次迭代都会在帧中添加一个新的黑色列(1像素),最终结果将具有完全黑色的图像

在此处输入图片说明

此弹出/推入操作类似于队列,但我想直接在2D Numpy数组上执行此操作。我不想使用任何其他数据结构,因为我将这些图像直接放入OpenCV中,因此我想将其保留为Numpy数组。如何将2D numpy阵列一次移动一个像素?

import numpy as np
import cv2

black_column = np.zeros([512,1], dtype=np.uint8)
blank_pixels = np.zeros([512, 640], dtype=np.uint8)
blank_pixels[:] = 255

while True:
    # Pop
    blank_pixels[:-1] = blank_pixels[1:]
    # Push
    blank_pixels[-1] = black_column

    #blank_pixels[:] = np.concatenate(blank_pixels[1:], black_column)

    cv2.imshow('blank_pixels', blank_pixels)
    cv2.waitKey(1)
Run Code Online (Sandbox Code Playgroud)

python opencv numpy

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

如何使用Python分割和忽略文件路径中的分隔符

我有这样的字符串

LASTSCAN:C:\Users\Bob\Scripts\VisualizeData\doc\placeholder.PNG:1557883221.11
Run Code Online (Sandbox Code Playgroud)

字符串的格式为[Command][File path][Timestamp]。当前它由冒号分隔,但文件路径也有一个冒号。有时,字符串的格式可能会更改,但始终用冒号分隔。例如:

SCAN:2000:25:-12.5:12.5:C:\Users\Potato\potato.PNG:1557884143.93
Run Code Online (Sandbox Code Playgroud)

该字符串的签名为 [Command][Frames][Speed][Start][Stop][File path][Timestamp]

我如何分割输入字符串以获得这样的输出?

['LASTSCAN', 'C:\Users\Bob\Scripts\VisualizeData\doc\placeholder.PNG', '1557883221.11']
Run Code Online (Sandbox Code Playgroud)

第二个示例的预期输出

['SCAN', '2000', '25', '-12.5', '12.5', 'C:\Users\Potato\potato.PNG', '1557884143.93']
Run Code Online (Sandbox Code Playgroud)

python string

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

康达安装python = 3.6不满意的错误

我正在尝试通过Windows的anaconda提示符安装OpenCV。但是,conda install python=3.6由于我当前处于运行状态,因此在运行命令时3.7收到此错误消息

解决环境:失败

UnsatisfiableError: The following specifications were found to be incompatible with each other:

- anaconda==2019.03=py37_0 -> importlib_metadata==0.8=py37_0 -> zipp[version='>=0.3.2']
- anaconda==2019.03=py37_0 -> mkl-service==1.1.2=py37hb782905_5
- importlib_metadata
- mkl-service
- pip -> python[version='>=3.6,<3.7.0a0']
- zipp
Run Code Online (Sandbox Code Playgroud)

我为什么会收到此错误?

python opencv anaconda

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

如何检查文本覆盖的图像的百分比?

有没有办法以编程方式计算文本覆盖图像的百分比?我正在尝试在 node.js 或 python 中执行此操作,但似乎找不到任何可以执行此操作的内容-我找到了很多可让您分析文本和/或更改图像属性本身的库(tesseract最初看起来很有希望),但没有什么可以给我回一个区域或数量——通常只是文本本身。任何想法将不胜感激,对于我尝试过的缺少代码感到抱歉,但在任何地方都找不到任何关于此的信息。

javascript python opencv image-processing node.js

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

如何基于Python OpenCV的空白区域或边缘检测将图像分割成多个小图像?

图片在这里

我有很多类似的图片。由于是手写体,因此每个文本/罗马数字的大小可能会有所不同。

如何保存每个文本/罗马数字以.png单独格式化?有 9 个文本,其中一个点。所以输出应该分别是 10 或 9 个图像。每个文本/罗马数字之间的空格不同。我应该根据精明的边缘或任何更好的方法来裁剪它们吗?

我不确定这有多难,因为我是简历的初学者。但我计划为我的项目这样做。

python opencv image image-processing computer-vision

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

spark任务失败并出现错误,显示退出状态:-100

在纱线模式下运行的 spark 作业显示很少有任务失败,原因如下:

ExecutorLostFailure(执行器 36 由正在运行的任务之一导致退出)原因:容器标记为失败:容器_xxxxxxxxxx_yyyy_01_000054 在主机:ip-xxx-yy-zzz-zz。退出状态:-100。诊断:在*丢失*节点上发布的容器

知道为什么会这样吗?

hadoop-yarn apache-spark

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

为什么文档无法在JavaScript上运行

我看过各种网站,但没有帮助。对我来说,一切似乎都是正确的,但我无法

document.getElementByClassName("first").style.display="none"; 
Run Code Online (Sandbox Code Playgroud)

不管我尝试多少次,我都能在JS上收到相同的错误消息;

错误:未定义'文档'。[no-undef]

尝试定义“文档”部分,但没有帮助。也许是我在尝试连接外部文件夹之间的连接不正确,但没有做任何更改

HTML:

<html>
 <head>
       <script src="JS.js"></script>
 </head>
 <body>
 <div class="first">
    <p>Hello and welcome to my first page<br>
    in this page I will test out new think<br>
    and see what works and what doesn't<br>
    </p>
</div>
<button type="button" onclick="myFunction">Click me</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

JS:

function myFunction(){
    document.getElementsByClassName("first").style.display="none";
Run Code Online (Sandbox Code Playgroud)

该按钮应该是从“第一”清除所有样式。我更改了许多结果,并且代码没有任何变化,只是相同的错误一遍又一遍地重复。

html javascript css

-2
推荐指数
1
解决办法
71
查看次数