最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python實現(xiàn)圖片九宮格切圖程序

 更新時間:2023年04月10日 09:34:00   作者:逃逸的卡路里  
這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實現(xiàn)圖片九宮格切圖程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下

1、python代碼實現(xiàn)圖片分割成九宮格

需要包含的庫,沒有下載安裝的,需要自己安裝哦。

實現(xiàn)原理很簡單,就是用PIL庫不斷畫小區(qū)域,切下來存儲成新的小圖片。

假設(shè)每一個格子的寬和高分別是w、h,那么第row行(從0開始計數(shù)),第col列(從0開始計數(shù))的格子左上角坐標(biāo)和右下角坐標(biāo)分別是(col * w, row * h),(col * w + w, r * h + h)。

代碼實例:

import tkinter as tk
from PIL import Image,ImageTk 
import sys
import tkinter.filedialog
#先將圖片填充為正方形
def fill_image(image): 
 width, height = image.size 
 #比較圖片的寬和高,選取值較大的作為新圖的寬 
 newImage_width = width if width > height else height 
 #生成正方形圖,空白處用白色填充
 newImage = Image.new(image.mode, (newImage_width, newImage_width), color='white')  
 #如果原圖寬大于高,則填充圖片的豎直維度
 if width > height: 
    newImage.paste(image, (0, int((newImage_width - height) / 2))) 
 else: 
    newImage.paste(image, (int((newImage_width - width) / 2),0)) 
 return newImage 
# 切圖(切成9張圖)
def cut_image(image):
 width, height = image.size
 colWidth = int(width / 3)   #一行3張
 image_grid = []
 for i in range(0,3):
   for j in range(0,3):
      row = (j*colWidth,i*colWidth,(j+1)*colWidth,(i+1)*colWidth)
      image_grid.append(row)
 image_list = [image.crop(row) for row in image_grid]
 return image_list

運(yùn)行結(jié)果:

2、C++代碼實現(xiàn)圖片分割成九宮格(附Opencv配置教程)

①、本示例中用opencv實現(xiàn),需要配置,具體如下:

OpenCV下載地址:http://opencv.org/downloads.html,根據(jù)操作系統(tǒng)選擇合適的安裝包。本文使用的是isual Studio是VS2015版本。我把OpenCV解壓到C:\opencv。

在Windows 10 中添加環(huán)境變量

在系統(tǒng)變量的Path變量中添加以下兩個路徑:

配置VS的目錄

打開VS,新建一個C++項目,打開項目屬性,配置VC++ 目錄屬性:

選擇“包含目錄”,添加OpenCV的include目錄的路徑:

選擇“庫目錄”,添加OpenVC的lib文件夾的路徑:

添加附加依賴項

添加附加依賴項就是添加所有的lib文件的路徑,這些lib文件都是在前面那個庫目錄里面保存的。依次選擇“鏈接器”、“輸入”、“附加依賴項”,進(jìn)入頁面,開始添加opencv_worldxxxx.lib文件路徑。

注意有兩種lib文件,一種帶d的是Debug模式,不帶d的是Release模式,OpenCV版本不同,前面的序號也不同,需要做相應(yīng)的修改,兩種模式的lib最好不要放一起,否則有可能會導(dǎo)致其中一個模式出問題,Debug模式下使用namewindow函數(shù)創(chuàng)建窗口,運(yùn)行代碼會出現(xiàn)兩幅圖片。

②、代碼示例:

#include "stdafx.h"
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;

int main()
{

	Mat src = imread("逃逸的卡路里.png");
	if (src.empty())
	{
		cout << "No Image!" << endl;
		system("pause");
		return -1;
	}

	//原圖寬高
	int width = src.cols;
	int height = src.rows;

	int num = 3;//小方塊數(shù)量(可實現(xiàn)任意等份分割)

				//制作九宮格每個小方塊寬高
	int step_x = width / num;
	int step_y = height / num;

	//重新resize圖片尺寸
	resize(src, src, Size(step_x * num, step_y * num), 1, 1, INTER_LINEAR);

	int space = 5; //空白間隔(實現(xiàn)九宮格效果)

	Mat canvas = Mat(Size(src.cols + space * (num - 1), src.rows + space * (num - 1)), CV_8UC3, Scalar(255, 255, 255)); //畫布,用來制作九宮格圖片

	int icount = 0;																													//就圖片分成9個小塊,將每一小塊摳圖至畫布
	for (int i = 0; i < num; i++)
	{
		for (int j = 0; j < num; j++)
		{
			//小方塊相對于原圖左上角起點
			int x = j * step_x;
			int y = i * step_y;
			//將小方塊摳圖至畫布。其中,每扣一小塊需跳過space空白
			src(Rect(x, y, step_x, step_y)).copyTo(canvas(Rect(x + space * j, y + space * i, step_x, step_y)));
			char cpicpath[6];
			sprintf(cpicpath, "%d.jpg", icount);;
			imwrite(cpicpath, src(Rect(x, y, step_x, step_y)));	// 保存切割的圖片
			icount++;
		}
	}

	imshow("canvas", canvas);
	imshow("test", src);
	waitKey(0);
	system("pause");
	return 0;
}

③、運(yùn)行結(jié)果:

以上就是基于Python實現(xiàn)圖片九宮格切圖程序的詳細(xì)內(nèi)容,更多關(guān)于Python圖片九宮格切圖的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解用python計算階乘的幾種方法

    詳解用python計算階乘的幾種方法

    這篇文章主要介紹了詳解用python計算階乘的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python報錯:PermissionError:?[Errno?13]?Permission?denied的解決辦法

    Python報錯:PermissionError:?[Errno?13]?Permission?denied的解

    這篇文章主要給大家介紹了關(guān)于Python報錯:PermissionError:?[Errno?13]?Permission?denied的解決辦法,文中給出了詳細(xì)的解決辦法,需要的朋友可以參考下
    2022-02-02
  • windows10下安裝TensorFlow Object Detection API的步驟

    windows10下安裝TensorFlow Object Detection API的步驟

    這篇文章主要介紹了windows10下安裝TensorFlow Object Detection API的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • pycharm雙擊無響應(yīng)(打不開問題解決辦法)

    pycharm雙擊無響應(yīng)(打不開問題解決辦法)

    這篇文章主要介紹了pycharm雙擊無響應(yīng)(打不開問題解決辦法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python中Parsel的兩種數(shù)據(jù)提取方式詳解

    Python中Parsel的兩種數(shù)據(jù)提取方式詳解

    在網(wǎng)絡(luò)爬蟲的世界中,數(shù)據(jù)提取是至關(guān)重要的一環(huán),Python 提供了許多強(qiáng)大的工具,其中之一就是 parsel 庫,下面我們就來深入學(xué)習(xí)一下Parsel的兩種數(shù)據(jù)提取方式吧
    2023-12-12
  • Anaconda中安裝Tensorflow的過程

    Anaconda中安裝Tensorflow的過程

    這篇文章主要介紹了Anaconda中如何安裝Tensorflow,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • python Windows最新版本安裝教程

    python Windows最新版本安裝教程

    這篇文章主要介紹了python Windows最新版本安裝教程,是python的詳細(xì)安裝教程和環(huán)境變量的配置,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-02-02
  • PyQt使用QPropertyAnimation開發(fā)簡單動畫

    PyQt使用QPropertyAnimation開發(fā)簡單動畫

    這篇文章主要介紹了PyQt使用QPropertyAnimation開發(fā)簡單動畫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 基于Python實現(xiàn)四維圖像繪制系統(tǒng)

    基于Python實現(xiàn)四維圖像繪制系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了如何基于Python語言實現(xiàn)一個簡單的四維圖像繪制系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • python 通過郵件控制實現(xiàn)遠(yuǎn)程控制電腦操作

    python 通過郵件控制實現(xiàn)遠(yuǎn)程控制電腦操作

    這篇文章主要介紹了python 通過郵件控制電腦實現(xiàn)遠(yuǎn)程控制操作,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論

宣武区| 响水县| 谢通门县| 吴桥县| 杭州市| 宜黄县| 竹北市| 汉寿县| 出国| 抚松县| 民乐县| 小金县| 定兴县| 杭州市| 龙南县| 罗山县| 永昌县| 武陟县| 和平县| 哈巴河县| 台北市| 凉城县| 华安县| 漯河市| 获嘉县| 东平县| 大兴区| 衡水市| 岚皋县| 高台县| 延寿县| 无棣县| 汉阴县| 张掖市| 赤城县| 迭部县| 远安县| 革吉县| 麦盖提县| 梓潼县| 秭归县|