小编Ann*_*Zen的帖子

查找近似重复和伪造的图像

我正在使用感知哈希技术来查找接近重复和完全重复的图像。该代码非常适合查找完全相同的重复图像。然而,找到近似重复和略有修改的图像似乎很困难。由于它们的哈希值之间的差异分数通常类似于完全不同的随机图像的哈希差异。

为了解决这个问题,我尝试将几乎重复的图像的像素化减少到 50x50 像素,并使它们变成黑/白,但我仍然没有我需要的东西(分数差异很小)。

这是几乎重复的图像对的示例:

图片 1 (a1.jpg):

在此输入图像描述

图片 2 (b1.jpg):

在此输入图像描述

这些图像的哈希分数之间的差异是:24

当像素化(50x50 像素)时,它们看起来像这样:

在此输入图像描述

rs_a1.jpg

在此输入图像描述

rs_b1.jpg

像素化图像的哈希差异分数甚至更大!:26

下面是@ann zen 要求的两个近似重复图像对的示例:

对 1

在此输入图像描述

对 2

在此输入图像描述

我用来减小图像大小的代码是这样的:

from PIL import Image    
with Image.open(image_path) as image:
            reduced_image = image.resize((50, 50)).convert('RGB').convert("1")
Run Code Online (Sandbox Code Playgroud)

以及比较两个图像哈希的代码:

from PIL import Image
import imagehash        
with Image.open(image1_path) as img1:
            hashing1 =  imagehash.phash(img1)
with Image.open(image2_path) as img2:
            hashing2 =  imagehash.phash(img2)           
print('difference :  ', hashing1-hashing2)
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing computer-vision template-matching

19
推荐指数
3
解决办法
7975
查看次数

玉米粒的数字图像处理

我正在尝试从优质或健康的玉米粒中识别和计数受昆虫感染的玉米粒。我已经完成阈值处理,直到在图像中所有玉米粒周围绘制轮廓。

虫子出没(有洞,颜色褪黄)和好的玉米粒

仅供参考,受昆虫侵扰的玉米粒有洞并且颜色褪色。我应该如何从包含受感染玉米粒和良好玉米粒的图像中获取受感染玉米粒的百分比?我也愿意接受其他建议。

python opencv image-processing detection computer-vision

13
推荐指数
3
解决办法
772
查看次数

“元组”对象没有属性“层”

我在尝试开始训练我的模型(DCGAN)时遇到了很多麻烦。它给了我错误:

'tuple' object has no attribute 'layer'
Run Code Online (Sandbox Code Playgroud)

我读到这可能是因为同时拥有 TensorFlow 1.14.0 版和 Keras 2.2 版或更高版本。我试图通过将 Keras 版本降级到 2.1.5 来解决这个问题,但我仍然遇到同样的问题。

from google.colab import drive 
drive.mount('/mntDrive')

import os,sys      #os es para gestionar directorios (trabajar con archivos); sys es para trabajar con variables del sistema

# numpy
import numpy as np

# data processing, CSV file I/O (e.g. pd.read_csv)
import pandas as pd
from sklearn.model_selection import train_test_split

# Charts
import matplotlib.pyplot as plt
from matplotlib.pyplot import imread
#process
from tqdm import tqdm

# Image …
Run Code Online (Sandbox Code Playgroud)

python version attributeerror keras tensorflow

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

如何去除文档图像中的水印?

我有以下图片

以及具有完全相同徽标的另一个变体

我试图去掉徽标本身,同时保留底层文本。使用以下代码段

import skimage.filters as filters
import cv2

image = cv2.imread('ingrained.jpeg')

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
smooth1 = cv2.GaussianBlur(gray, (5,5), 0)
division1 = cv2.divide(gray, smooth1, scale=255)

sharpened = filters.unsharp_mask(division1, radius=3, amount=7, preserve_range=False)
sharpened = (255*sharpened).clip(0,255).astype(np.uint8)

# line segments
components, output, stats, centroids = cv2.connectedComponentsWithStats(sharpened, connectivity=8)
sizes = stats[1:, -1]; components = components - 1
size = 100
result = np.zeros((output.shape))
for i in range(0, components):
    if sizes[i] >= size:
        result[output == i + 1] = 255

cv2.imwrite('image-after.jpeg',result)
Run Code Online (Sandbox Code Playgroud)

我得到了这些结果

但如图所示,所得到的图像在水印轮廓的残留和字母被洗掉方面分别不一致。有没有更好的解决方案可以补充?理想的解决方案是删除水印边框而不影响其下方的文本。

python opencv image image-processing computer-vision

9
推荐指数
2
解决办法
3762
查看次数

VsCode 中的“C:\Users\AccountName\AppData\Local\Programs\Python\Python38-32\python.exe”中没有 python 错误

我运行 Django 项目没有任何问题。直到我重新安装了Windows,然后重新安装了vscode!现在我正在运行 Django 项目,vscode 显示以下错误:

Error: no python at C:\Users\AccountName\AppData\Local\Programs\Python\Python38-32\python.exe 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python django visual-studio-code

8
推荐指数
3
解决办法
11万
查看次数

检查列表是否是有效的块序列

我想检查列表是否是有效的块序列,其中每个块以某个值开始,以下一次出现的相同值结束。例如,这是三个块的有效序列:

lst = [2, 7, 1, 8, 2, 8, 1, 8, 2, 8, 4, 5, 9, 0, 4, 5, 2]
       \___________/  \_____/  \_______________________/
Run Code Online (Sandbox Code Playgroud)

这是无效的:

lst = [2, 7, 1, 8, 2, 8, 1, 8, 2, 8, 4, 5, 9, 0, 4]
       \___________/  \_____/  \_____ ... missing the 2 to end the chunk
Run Code Online (Sandbox Code Playgroud)

我有一个解决方案,但它很糟糕。你看到更好的东西了吗?

def is_valid(lst):
    while lst:
        start = lst.pop(0)
        if start not in lst:
            return False
        while lst[0] != start:
            lst.pop(0)
        lst.remove(start)
    return True

# Tests, should …
Run Code Online (Sandbox Code Playgroud)

python validation list sequence chunks

8
推荐指数
2
解决办法
844
查看次数

在 Python 3.6 中导入库“modin”时出错

import modin.pandas as pd
Run Code Online (Sandbox Code Playgroud)

我正在 Windows 10 机器中导入 modin.pandas 库但出现错误

“AttributeError:模块‘ray’没有属性‘utils’”

安装 modin 库时遗漏了什么?

python python-3.x ray pandas modin

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

Django Channels Redis:应用程序内部异常:未获取锁

使用 Daphne/Channels 的具有 1000 个 WebSockets 的完全加载的多租户 Django 应用程序,运行良好几个月,突然租户都称其为支持线,应用程序运行缓慢或完全挂起。由于 HTTP REST API 命中率快速且无错误,因此将其缩小到 WebSockets。

应用程序日志或操作系统日志均未表明存在问题,因此唯一要做的就是下面提到的异常。在这两天的时间里,它在这里和那里一遍又一遍地发生。

我不期望任何深入的调试帮助,只是一些关于可能性的即兴建议。

AWS Linux 1
Python 3.6.4
Elasticache Redis 5.0
Run Code Online (Sandbox Code Playgroud)
channels==2.4.0
channels-redis==2.4.2
daphne==2.5.0
Django==2.2.13
Run Code Online (Sandbox Code Playgroud)

uwsgi服务的拆分配置HTTP,daphne服务asgi,Nginx

May 10 08:08:16 prod-b-web1: [pid 15053] [version 119.5.10.5086] [tenant_id -] [domain_name -] [pathname /opt/releases/r119.5.10.5086/env/lib/python3.6/site-packages/daphne/server.py] [lineno 288] [priority ERROR] [funcname application_checker] [request_path -] [request_method -] [request_data -] [request_user -] [request_stack -] Exception inside application: Lock is not acquired.
Traceback (most recent call last):
  File "/opt/releases/r119.5.10.5086/env/lib/python3.6/site-packages/channels_redis/core.py", line 435, in receive
    real_channel
  File "/opt/releases/r119.5.10.5086/env/lib/python3.6/site-packages/channels_redis/core.py", …
Run Code Online (Sandbox Code Playgroud)

python django redis django-redis django-channels

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

AttributeError:模块“networkx”没有属性“Graph”

我通过下载分发文件并运行来安装 networkx:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

看来已经成功了,安装后我收到此消息

Installed c:\python\python36-32\lib\site-packages\decorator-4.0.11-py3.6.egg
Finished processing dependencies for networkx==1.11
Run Code Online (Sandbox Code Playgroud)

但是当我运行一个非常简单的测试代码时,我收到错误

import networkx as nx

G=nx.Graph()

print(G.nodes())
print(G.edges())

print(type(G.nodes()))
print(type(G.edges()))
Run Code Online (Sandbox Code Playgroud)
> Traceback (most recent call last):   File "netExample.py", line 3, in
> <module>
>     G=nx.Graph() 

> AttributeError: module 'networkx' has no attribute 'Graph'
Run Code Online (Sandbox Code Playgroud)

运行print(dr(nx))赋予以下属性:

> ['GraphMLReader', 'GraphMLWriter', '__builtins__', '__cached__',
> '__doc__', '__file__', '__loader__', '__name__', '__package__',
> '__path__', '__spec__', 'exception', 'generate_adjlist',
> 'generate_edgelist', 'generate_gexf', 'generate_gml',
> 'generate_graph6', 'generate_graphml', 'generate_multiline_adjlist',
> 'generate_pajek', 'generate_sparse6', 'parse_adjlist',
> 'parse_edgelist', 'parse_gml', …
Run Code Online (Sandbox Code Playgroud)

python graph networkx

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

如何找到列表中值的索引,增加值?

我有一个列表,看起来像:

mot = [0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0]

我需要附加到一个列表,当元素从0to 1(而不是 from 1to 0)更改时的索引。

我试着做以下,但是当它发生变化,同时也注册10

i = 0 
while i != len(mot)-1:
    if mot[i] != mot[i+1]:
        mot_daily_index.append(i)
    i += 1
Run Code Online (Sandbox Code Playgroud)

另外,但不是那么重要,是否有更干净的实现?

python indexing list

6
推荐指数
4
解决办法
583
查看次数