标签: scikit-image

如何检测图像中的圆形区域并用 Python 将其居中?

我有一个如下所示的图形火焰:

在此处输入图片说明

我试图检测相机视图的外边缘并将图形居中,以便火焰的圆形视图正好位于绘图的中心。因为圆圈的位置可能会随着图像拍摄日期而变化。有时可能在上半部分,有时可能在下半部分,等等。

Python 中是否有任何模块可以检测视图并将其居中?

可重现的代码

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img=mpimg.imread('flame.png')
lum_img = img[:,:,0]
img_plot = plt.imshow(lum_img)
img_plot.set_cmap('jet')
plt.axis('Off')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python image-processing matplotlib scikit-image

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

细化/骨架化扭曲了我的形象

我试图使该图像变薄,但它不断扭曲。

在此输入图像描述

在此输入图像描述

这是我应用细化的相关代码。我也尝试过“瘦”功能而不是“骨架化”,但结果相似。

from skimage.morphology import skeletonize, thin
new_im = cv2.imread(im_pth)
gray = cv2.cvtColor(new_im, cv2.COLOR_BGR2GRAY)
ske = (skeletonize(gray//255) * 255).astype(np.uint8)
cv2.imshow("image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

我的目标是在细化后获得与此类似的形状:

在此输入图像描述

我究竟做错了什么?我在网上读到,有时 jpg 文件会导致问题,但我没有该领域的经验来证实这一点。

python opencv image-processing computer-vision scikit-image

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

Python Image - 从图像骨架中寻找最大的分支

我有以下形状的骨架图像: 在此处输入图片说明

我想从骨架中提取“最大的分支”: 在此处输入图片说明

我知道也许我需要提取交界点并从该点(?)划分 de 线,但我不知道如何做到这一点。

有没有办法用 Python Scikit Image 或 OpenCV 做到这一点?

python image scikit-image opencv-python

0
推荐指数
2
解决办法
2080
查看次数

如何在对扭曲或光线不敏感的情况下从照片中定位和提取迷宫

我一直在问几个关于从 SOF 上的照片中定位和提取迷宫的问题,但是我在不同的照片中得到的答案都没有,甚至在 4 张测试照片中也没有。每次我调整代码以使其适用于 1 张照片时,由于扭曲的角落/部分或光线等,它会在其余照片上失败。我觉得我需要找到一种对扭曲图像不敏感且不同的方法光的强度或迷宫墙壁的不同颜色(迷宫内的线条)。

我一直试图让它在没有运气的情况下工作 3 周。在我放弃这个想法之前,我想问一下是否可以只使用没有 AI 的图像处理来从照片中定位和提取迷宫?如果是的话,你能告诉我怎么做吗?

下面是代码和照片:

import cv2    
import numpy as np

from skimage.exposure import rescale_intensity
from skimage.feature import corner_harris, corner_subpix, corner_peaks
from skimage.io import imread, imshow
from skimage.morphology import reconstruction, binary_erosion, skeletonize, dilation, square
from skimage.morphology.convex_hull import convex_hull_image
from skimage.util import invert
from skmpe import parameters, mpe, OdeSolverMethod

maze=cv2.imread("simple.jpg",0)
ret, maze=cv2.threshold(maze,100,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
h, w = maze.shape
seed = np.zeros_like(maze)
size = 40
hh = h // 2
hw = w // 2
seed[hh-size:hh+size, …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing scikit-image

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

在Python中计算图像中不同颜色的对象数

这是一张我要从中计算每种颜色的对象数的图表。什么是不使用opencv的简单方法?

[编辑2]: 我尝试过的方法如下:(1)有色物体计数

from PIL import Image
im = Image.open('./colored-polka-dots.png').getcolors()
im.sort(key=lambda k: (k[0]), reverse=True)
print('Top 5 colors: {}'.format((im[:5])))

# View non-background colors
color_values = []
for color in im[1:5]:
    color_values.append(color[1])
    arr = np.asarray(color[1]).reshape(1,1,4).astype(np.uint8)
    plt.imshow(arr)
    plt.show() # get top 4 frequent colors as green,blue,pink,ornage

# Create a dict of color names and their corressponding rgba values
color_dict = {}
for color_name,color_val in zip(['green','blue','pink','orange'],color_values):
    color_dict[color_name] = color_val

# Make use of ndimage.measurement.labels from scipy 
# to get the number …
Run Code Online (Sandbox Code Playgroud)

python opencv scipy python-imaging-library scikit-image

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