Ein Segen wird mehr Segen Alipay Jifu Netzwerkbildaufnahme Grundlegende Bildoperation

Bilderfassung und -verarbeitung

Überblick

Die jährliche Wufu-Versammlungsaktivität hat wieder begonnen. Auch wenn sie am Ende nur ein paar Dollar kostet, kann sie nicht das Interesse aller aufhalten, die fünf Glücksbringer zu sammeln. Um die fünf Segnungen zu sammeln, müssen Sie AR verwenden, um Dinge mit Segenszeichen zu scannen. Ich erinnere mich, dass ich alle Arten von Segenbildern aus dem Internet heruntergeladen habe, um sie zu scannen, und es war ziemlich schwierig, sie herunterzuladen. Deshalb habe ich dieses Jahr Baidu-Bilder direkt mit "福" gecrawlt. , "Fuqi", "fu" als Schlüsselwörter im Bild. Später dachte ich, dass es beim Studieren von Bildern viele grundlegende Bildverarbeitungsvorgänge gab, und ich habe das Bild von Hand manipuliert, um aus einem Segenszeichen mehrere Segenzeichen zu machen. Die Backstage antwortete "福", um mehr als 170 Bilder mit dem Wort "Fu" zu erhalten. Die Erstellung ist nicht einfach, klicken Sie einfach auf "Ich schaue".

Bilderfassung

Die Bilderfassung verwendet kein Framework zum Erfassen. Es handelt sich um sehr einfache URL-Anforderungsdaten, Analysedaten und Datenpersistenz. Ich werde hier nicht auf Details eingehen. Wenn Sie es wissen möchten, können Sie in meinen vorherigen Tweets Dutzende von Codezeilen sehen, um HD-Hintergrundbilder stapelweise herunterzuladen.

Der Implementierungscode lautet wie folgt


# -*- coding:utf-8 -*-
import requests
import os
import re
import time
import random

def getManyPages(keyword, pages):
    params = []
    for i in range(30, 30 * pages + 30, 30):
        params.append({
        })
    url = 'https://image.baidu.com/search/acjson'
    urls = []
    for i in params:
        urls.append(requests.get(url, params=i).json().get('data'))
    return urls
def getpage(key, page):
    new_url = []
    for i in range(0, page * 30 + 30, 30):
        new_url.append({
        })
    url = 'https://image.baidu.com/search/acjson'
    result = []
    for i in new_url:
        randnumber1 = random.randint(0, 3)  # 生成随机数
        time.sleep(randnumber1)  # 按随机数延时
        print(i)
        try:
            result.append(requests.get(url, params=i).json().get('data'))
            print(result)
        except:  # 如果延时之后还是被拒绝
            # print('error\n')
            randnumber2 = random.randint(5, 10)  # 延迟随机时间
            time.sleep(randnumber2)
    return result
def getImg(dataList, localPath, keyword):
    i = 1
    x = 0
    for list in dataList:
        for each in list:
            try:
                if each.get('thumbURL') != None:
                    print('downloading:%s' % each.get('thumbURL'))
                    pic = requests.get(each.get('thumbURL'))
            except requests.exceptions.ConnectionError:
                print('error: This photo cannot be downloaded')
                continue
            dir = 'image/' + keyword + '_' + str(i) + '.jpg'
            fp = open(dir, 'wb')
            fp.write(pic.content)
            fp.close()
            i += 1
def dowmloadPic(html, keyword):
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
    i = 1
    print('Can not find key word:' + keyword + 'is downloading...')
    for each in pic_url:
        print('No ' + str(i) + '.jpg is downloading ,URL:' + str(each))
        try:
            pic = requests.get(each, timeout=10)
        except requests.exceptions.ConnectionError:
            print('error: This photo cannot be downloaded')
            continue

        dir = 'image/' + keyword + '_' + str(i) + '.jpg'
        fp = open(dir, 'wb')
        fp.write(pic.content)
        fp.close()
        i += 1
if __name__ == '__main__':
    keyword = '福气'  # 改变keyword就可以得到你要搜索的图片
    dataList = getpage(keyword, 2)  # key word and number of page
    getImg(dataList, '/images', keyword)  # path

Bildverarbeitung

In diesem Teil habe ich die drei einfachsten Bildverarbeitungen (eigentlich nur als Funktion bezeichnet) durchgeführt, die im Grunde genommen in ein oder zwei Sätzen abgeschlossen wurden. "Grauverarbeitung", "Pixelinversion" und "Bildinversion" wurden jeweils für das Bild durchgeführt. Code wie unten anzeigen.


import cv2
from matplotlib import pyplot as plt
import numpy as np

imgOgr = cv2.imread('D://python_pycharm//MyPy//image//fu_7.jpg')
# 转换颜色模式,显示原图
img = cv2.cvtColor(imgOgr, cv2.COLOR_BGR2RGB)
# 灰度图
img_gray = cv2.cvtColor(imgOgr, cv2.COLOR_RGB2GRAY)
# 反色
img_array = np.asarray(img)
img_re = 255 - img_array
# 倒
img_r = cv2.flip(img, -1)

plt.subplot(2, 2, 1), plt.imshow(img)
plt.title('Original'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 2), plt.imshow(img_gray, cmap="gray")
plt.title('Gray'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 3), plt.imshow(img_re)
plt.title('re'), plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 4), plt.imshow(img_r)
plt.title('r'), plt.xticks([]), plt.yticks([])
plt.show()

Zeige Ergebnisse

1. Bilderfassungseffekt

Ein Segen wird mehr Segen Alipay Jifu Netzwerkbildaufnahme Grundlegende Bildoperation

Ein Segen wird mehr Segen Alipay Jifu Netzwerkbildaufnahme Grundlegende Bildoperation

2. Bildverarbeitungsergebnisse

Ein Segen wird mehr Segen Alipay Jifu Netzwerkbildaufnahme Grundlegende Bildoperation

Ich denke du magst

Origin blog.51cto.com/15069472/2577343
Empfohlen
Rangfolge