国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

做曖視頻網(wǎng)站大全什么平臺(tái)可以做引流推廣

做曖視頻網(wǎng)站大全,什么平臺(tái)可以做引流推廣,遼寧大連直客部七部,用二級(jí)域名做的網(wǎng)站算新站嗎前言 當(dāng)今數(shù)字時(shí)代,圖像處理和美化已經(jīng)變得非常普遍。從社交媒體到個(gè)人博客,人們都渴望分享獨(dú)特且引人注目的圖片。本文將介紹如何使用Python編程語(yǔ)言和OpenCV庫(kù)創(chuàng)建令人印象深刻的卡通風(fēng)格圖像??ㄍL(fēng)格的圖像具有藝術(shù)性和創(chuàng)意,它們可以用…

前言

當(dāng)今數(shù)字時(shí)代,圖像處理和美化已經(jīng)變得非常普遍。從社交媒體到個(gè)人博客,人們都渴望分享獨(dú)特且引人注目的圖片。本文將介紹如何使用Python編程語(yǔ)言和OpenCV庫(kù)創(chuàng)建令人印象深刻的卡通風(fēng)格圖像。卡通風(fēng)格的圖像具有藝術(shù)性和創(chuàng)意,它們可以用于圖像編輯、創(chuàng)意表達(dá)以及增加娛樂(lè)價(jià)值。

文章目錄

    • 前言
      • 1. 準(zhǔn)備工作
      • 2. 讀取和顯示圖像
      • 3. 創(chuàng)建邊緣掩膜
      • 4. 顏色量化
      • 5. 圖像處理和效果增強(qiáng)
      • 6. 完整代碼
    • 總結(jié)

1. 準(zhǔn)備工作

在開(kāi)始之前,您需要安裝以下必要的庫(kù):

  • OpenCV (cv2)
  • NumPy

如果您還沒(méi)有安裝這些庫(kù),可以使用pip進(jìn)行安裝。

pip install opencv-python numpy

2. 讀取和顯示圖像

首先,我們將介紹如何使用OpenCV讀取圖像文件并在窗口中顯示它們。這是我們處理圖像的第一步。

# 讀取文件
def read_file(filename: str) -> np.ndarray:try:img = cv2.imread(filename)if img is None:raise ValueError("Invalid file path or file format.")return imgexcept:raise ValueError("Invalid file path or file format.")# 顯示圖片
def display_image(img: np.ndarray, window_name: str) -> None:cv2.imshow(window_name, img)cv2.waitKey()

在這個(gè)步驟中,我們定義了一個(gè)名為read_file的函數(shù),它接受一個(gè)文件名作為參數(shù),并返回一個(gè)NumPy數(shù)組表示的圖像。如果文件路徑無(wú)效或圖像格式不受支持,函數(shù)將引發(fā)異常。
我們定義了一個(gè)名為display_image的函數(shù),它接受兩個(gè)參數(shù):要顯示的圖像和窗口的名稱。函數(shù)將圖像顯示在指定的窗口中,并等待用戶按下任意鍵后關(guān)閉窗口。這個(gè)簡(jiǎn)單的步驟允許我們?cè)谶M(jìn)行后續(xù)處理之前,查看原始照片的外觀。

3. 創(chuàng)建邊緣掩膜

接下來(lái),我們將圖像轉(zhuǎn)化為卡通風(fēng)格的第一步是創(chuàng)建邊緣掩膜。我們將使用邊緣檢測(cè)技術(shù)來(lái)實(shí)現(xiàn)這一目標(biāo)。

# 邊緣掩膜
def edge_mask(image: np.ndarray, line_size: int, blur_value: int) -> np.ndarray:if not isinstance(line_size, int) or not isinstance(blur_value, int) or line_size < 1 or blur_value < 1:raise ValueError("Invalid value for 'line_size' or 'blur_value' parameter. Must be a positive integer.")gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)gray_blur = cv2.medianBlur(gray, blur_value)edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)return edges

在這個(gè)步驟中,我們定義了一個(gè)名為edge_mask的函數(shù),它接受三個(gè)參數(shù):圖像、線條大小(控制邊緣粗細(xì))和模糊程度。函數(shù)將圖像轉(zhuǎn)換為灰度圖,然后應(yīng)用中值模糊和自適應(yīng)閾值處理,以創(chuàng)建邊緣掩膜。

4. 顏色量化

卡通風(fēng)格的圖像通常具有較少的顏色。我們將使用K-Means聚類算法來(lái)減少圖像中的顏色數(shù)量。

# 顏色量化
def color_quantization(image: np.ndarray, num_colors: int) -> np.ndarray:if not isinstance(num_colors, int) or num_colors < 1:raise ValueError("Invalid value for 'num_colors' parameter. Must be a positive integer.")# 轉(zhuǎn)換圖片data = np.float32(image).reshape((-1, 3))# 設(shè)置KMeans聚類參數(shù)kmeans_criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)flags = cv2.KMEANS_RANDOM_CENTERS# 執(zhí)行KMeans聚類_, labels, centers = cv2.kmeans(data, num_colors, None, kmeans_criteria, 10, flags)centers = np.uint8(centers)processed_image = centers[labels.flatten()]processed_image = processed_image.reshape(image.shape)# 應(yīng)用顏色增強(qiáng)hsv_image = cv2.cvtColor(processed_image, cv2.COLOR_BGR2HSV)hsv_image[:, :, 1] = hsv_image[:, :, 1] * 1.5  # 增強(qiáng)飽和度enhanced_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)return enhanced_image

在這個(gè)步驟中,我們定義了一個(gè)名為color_quantization的函數(shù),它接受兩個(gè)參數(shù):圖像和要使用的顏色數(shù)量。函數(shù)首先將圖像轉(zhuǎn)換為數(shù)據(jù)矩陣,然后使用K-Means聚類算法將圖像顏色量化為指定數(shù)量的顏色。最后,我們?cè)鰪?qiáng)了圖像的飽和度,以使顏色更加生動(dòng)。

5. 圖像處理和效果增強(qiáng)

在這一步驟中,我們將應(yīng)用一些圖像處理技術(shù),如雙邊濾波,以增強(qiáng)最終的卡通效果圖像。

def resize_crop(image):h, w, c = np.shape(image)if min(h, w) > 720:if h > w:h, w = int(720 * h / w), 720else:h, w = 720, int(720 * w / h)image = cv2.resize(image, (w, h), interpolation=cv2.INTER_AREA)h, w = (h // 8) * 8, (w // 8) * 8image = image[:h, :w, :]return image# 圖像處理和效果增強(qiáng)
def cartoonize(load_folder, save_folder):name_list = os.listdir(load_folder)for name in name_list:try:load_path = os.path.join(load_folder, name)save_path = os.path.join(save_folder, name)if not save_path.endswith('.jpg'):raise ValueError("Invalid file format. Must be a '.jpg' file.")image = cv2.imread(load_path)image = resize_crop(image)display_image(image, "Image")# 設(shè)置邊緣掩膜參數(shù)并應(yīng)用line_size = 7blur_value = 7edges = edge_mask(image, line_size, blur_value)display_image(edges, "Edges")# 執(zhí)行顏色量化num_colors = 9processed_image = color_quantization(image, num_colors)display_image(processed_image, "Processed_image")# 應(yīng)用雙邊濾波blurred = cv2.bilateralFilter(processed_image, d=9, sigmaColor=200, sigmaSpace=200)display_image(blurred, "Blurred")# 應(yīng)用掩膜cartoonized_image = cv2.bitwise_and(blurred, blurred, mask=edges)display_image(cartoonized_image, "Cartoonized Image")cv2.imwrite(save_path, cartoonized_image)except:print('cartoonize {} failed'.format(load_path))

在這個(gè)步驟中,我們首先調(diào)整圖像的大小和裁剪,以確保它符合處理的要求。然后,我們依次應(yīng)用邊緣掩膜、顏色量化、雙邊濾波和最后的掩膜應(yīng)用,將圖像轉(zhuǎn)換成卡通畫風(fēng)。

這是整個(gè)卡通化過(guò)程的關(guān)鍵部分,通過(guò)這些步驟,您可以將任何普通照片轉(zhuǎn)換成具有卡通風(fēng)格的藝術(shù)品。在接下來(lái)的文章中,我們將展示如何使用這些代碼來(lái)卡通化您自己的照片。

6. 完整代碼

# -*- coding = utf-8 -*-
"""
# @Time : 2023/9/22 20:18
# @Author : FriK_log_ff 374591069
# @File : newmyway.py
# @Software: PyCharm
# @Function: 請(qǐng)輸入項(xiàng)目功能
"""
import cv2
import numpy as np
import os# 讀取文件
def read_file(filename: str) -> np.ndarray:try:img = cv2.imread(filename)if img is None:raise ValueError("Invalid file path or file format.")return imgexcept:raise ValueError("Invalid file path or file format.")# 顯示圖片
def display_image(img: np.ndarray, window_name: str) -> None:cv2.imshow(window_name, img)cv2.waitKey()# 邊緣掩膜
def edge_mask(image: np.ndarray, line_size: int, blur_value: int) -> np.ndarray:if not isinstance(line_size, int) or not isinstance(blur_value, int) or line_size < 1 or blur_value < 1:raise ValueError("Invalid value for 'line_size' or 'blur_value' parameter. Must be a positive integer.")gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)gray_blur = cv2.medianBlur(gray, blur_value)edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)return edges# 顏色量化
def color_quantization(image: np.ndarray, num_colors: int) -> np.ndarray:if not isinstance(num_colors, int) or num_colors < 1:raise ValueError("Invalid value for 'num_colors' parameter. Must be a positive integer.")# 轉(zhuǎn)換圖片data = np.float32(image).reshape((-1, 3))# 設(shè)置KMeans聚類參數(shù)kmeans_criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)flags = cv2.KMEANS_RANDOM_CENTERS# 執(zhí)行KMeans聚類_, labels, centers = cv2.kmeans(data, num_colors, None, kmeans_criteria, 10, flags)centers = np.uint8(centers)processed_image = centers[labels.flatten()]processed_image = processed_image.reshape(image.shape)# 應(yīng)用顏色增強(qiáng)hsv_image = cv2.cvtColor(processed_image, cv2.COLOR_BGR2HSV)hsv_image[:, :, 1] = hsv_image[:, :, 1] * 1.5  # 增強(qiáng)飽和度enhanced_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)return enhanced_imagedef resize_crop(image):h, w, c = np.shape(image)if min(h, w) > 720:if h > w:h, w = int(720 * h / w), 720else:h, w = 720, int(720 * w / h)image = cv2.resize(image, (w, h), interpolation=cv2.INTER_AREA)h, w = (h // 8) * 8, (w // 8) * 8image = image[:h, :w, :]return image# 上傳文件
def cartoonize(load_folder, save_folder):name_list = os.listdir(load_folder)for name in name_list:try:load_path = os.path.join(load_folder, name)save_path = os.path.join(save_folder, name)if not save_path.endswith('.jpg'):raise ValueError("Invalid file format. Must be a '.jpg' file.")image = cv2.imread(load_path)image = resize_crop(image)display_image(image, "Image")# 設(shè)置邊緣掩膜參數(shù)并應(yīng)用line_size = 7blur_value = 7edges = edge_mask(image, line_size, blur_value)display_image(edges, "Edges")# 執(zhí)行顏色量化num_colors = 9processed_image = color_quantization(image, num_colors)display_image(processed_image, "Processed_image")# 應(yīng)用雙邊濾波blurred = cv2.bilateralFilter(processed_image, d=9, sigmaColor=200, sigmaSpace=200)display_image(blurred, "Blurred")# 應(yīng)用掩膜cartoonized_image = cv2.bitwise_and(blurred, blurred, mask=edges)display_image(cartoonized_image, "Cartoonized Image")cv2.imwrite(save_path, cartoonized_image)except:print('cartoonize {} failed'.format(load_path))if __name__ == '__main__':load_folder = 'test_images'save_folder = 'cartoonized_images'if not os.path.exists(save_folder):os.mkdir(save_folder)cartoonize(load_folder, save_folder)

總結(jié)

在本文中,我們探討了如何使用Python和OpenCV庫(kù)創(chuàng)建卡通風(fēng)格的圖像。通過(guò)一系列圖像處理步驟,我們將普通照片轉(zhuǎn)化為有趣和具有創(chuàng)意的卡通風(fēng)格圖像。這個(gè)過(guò)程涵蓋了圖像讀取、邊緣檢測(cè)、顏色量化、圖像處理和效果增強(qiáng)等關(guān)鍵步驟。

卡通風(fēng)格圖像的制作涉及多個(gè)步驟,但通過(guò)掌握這些技巧,您可以自由發(fā)揮創(chuàng)造力,為照片增添新的趣味性。以下是本文中使用的一些關(guān)鍵技術(shù)的簡(jiǎn)要回顧:

  • 圖像讀取和顯示: 我們使用OpenCV庫(kù)來(lái)讀取圖像文件并在窗口中顯示它們。這是開(kāi)始圖像處理的第一步。

  • 邊緣掩膜: 為了創(chuàng)建卡通風(fēng)格,我們使用了邊緣檢測(cè)技術(shù),將圖像中的邊緣突出顯示。

  • 顏色量化: 卡通圖像通常包含較少的顏色。我們使用K-Means聚類來(lái)減少圖像中的顏色數(shù)量,從而實(shí)現(xiàn)卡通風(fēng)格的色彩。

  • 圖像處理和效果增強(qiáng): 我們應(yīng)用了一些圖像處理技術(shù),例如雙邊濾波,以增強(qiáng)最終的卡通效果圖像。

在完成所有處理步驟后,我們得到了有趣和獨(dú)特的卡通風(fēng)格圖像。這個(gè)過(guò)程可以批量處理圖像,使您能夠輕松創(chuàng)建多個(gè)卡通化的照片。

希望本文對(duì)您有所幫助,能夠啟發(fā)您探索更多有趣的圖像處理項(xiàng)目。 創(chuàng)造自己獨(dú)特的卡通風(fēng)格圖像,讓您的照片在社交媒體和網(wǎng)絡(luò)上脫穎而出。

http://m.aloenet.com.cn/news/37168.html

相關(guān)文章:

  • 網(wǎng)站推廣的優(yōu)勢(shì)有哪些seo課程培訓(xùn)視頻
  • 怎么做網(wǎng)站前臺(tái)站長(zhǎng)之家怎么找網(wǎng)址
  • 免費(fèi)網(wǎng)站建設(shè)塔山雙喜泉州全網(wǎng)營(yíng)銷推廣
  • 門戶網(wǎng)站和社交網(wǎng)絡(luò)的區(qū)別百度平臺(tái)商家我的訂單查詢
  • 網(wǎng)站登錄賬號(hào)密碼保存在哪里推廣手段有哪些
  • 螞蟻幣是什么網(wǎng)站建設(shè)網(wǎng)站推廣應(yīng)該怎么做?
  • 長(zhǎng)沙優(yōu)化官網(wǎng)公司滁州網(wǎng)站seo
  • 學(xué)院網(wǎng)站建設(shè)進(jìn)度情況說(shuō)明書seo自動(dòng)排名軟件
  • 制作手機(jī)網(wǎng)站工具搜索到的相關(guān)信息
  • wordpress判斷是否登錄英文seo兼職
  • 找設(shè)計(jì)案例的網(wǎng)站接推廣app任務(wù)的平臺(tái)
  • html編輯器在哪里設(shè)置seo是哪個(gè)國(guó)家
  • jsp網(wǎng)站首頁(yè)那欄怎么做南平seo
  • 做網(wǎng)站開(kāi)發(fā)哪里好網(wǎng)站收錄一鍵提交
  • php做的大型網(wǎng)站百度搜索引擎推廣步驟
  • h5網(wǎng)站建設(shè)機(jī)構(gòu)阿里云模板建站
  • 網(wǎng)站開(kāi)發(fā)發(fā)送短信seo網(wǎng)站推廣工作內(nèi)容
  • 哪些是大型網(wǎng)站友情鏈接樣式
  • 網(wǎng)站引導(dǎo)頁(yè)是什么問(wèn)題新產(chǎn)品推廣方案策劃
  • 東莞企石網(wǎng)站建設(shè)南寧百度推廣代理公司
  • 汕頭高端網(wǎng)站開(kāi)發(fā)什么是域名
  • 網(wǎng)站在線備案太原seo全網(wǎng)營(yíng)銷
  • 建設(shè)一個(gè)菠菜網(wǎng)站成本我贏網(wǎng)seo優(yōu)化網(wǎng)站
  • 怎樣在微信中做網(wǎng)站六六seo基礎(chǔ)運(yùn)營(yíng)第三講
  • 做老師好還是網(wǎng)站編輯好常見(jiàn)的系統(tǒng)優(yōu)化軟件
  • 域名過(guò)期做的網(wǎng)站怎么辦全國(guó)十大跨境電商排名
  • Wordpress主題 仿魅族青島seo杭州廠商
  • 如何做淘客發(fā)單網(wǎng)站海外推廣
  • 怎樣做醫(yī)院網(wǎng)站做電商一個(gè)月能掙多少錢
  • 產(chǎn)品開(kāi)發(fā)的流程seo外包公司多少錢