整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何使用CSS3來寫一個求婚動畫,來學習一下吧

          女生總是會在被求婚的時候感動的痛哭流涕,作為程序員的你如果提前給自己的女票一個求婚的動畫,想象一下她會不會很感動呢?

          今天就教大家用CSS3來做一個求婚的動畫效果吧,源碼已經放在了Github上,感興趣的可以認真看下源碼,地址如下:

          https://github.com/zhouxiongking/article-pages/tree/master/articles/wedding

          CSS

          實際效果

          首先我們來看看實際運行出來的效果,如下圖所示。

          效果圖

          在整個效果中,其實是用到了一系列的圖片,然后控制圖片的出現順序以及出現和結束的位置。

          在這個效果中,主要應用到的是animation屬性,如果對這個屬性還不是很了解的,可以先去學習一下。接下來我們具體分析整個動態是怎么實現的。

          頁面構成

          首先,我們看看頁面的構成,包括文字,其他的都是圖片,包括三個煙花效果,男孩,女孩,男孩手中的花,底部的花。頁面HTML代碼如下所示。

          頁面HTML

          文字效果

          文字部分主要是有一個平移的效果,所以使用translate屬性即可。

          文字部分動畫

          煙花效果

          在文字旁邊的煙花效果實際是一張圖片從中心點向外的擴張,因此可以使用scale屬性實現,然后通過時間的不同,來顯示出不同的煙花。

          煙花效果

          女孩效果

          圖中的女孩實際是站著不動,只是通過改變透明度來顯示出動畫效果,因此可以使用opacity屬性來實現。

          女孩效果

          男孩效果

          圖中的男孩實際有一個向女孩移動的效果,因此也是通過translate屬性來實現。

          男孩效果

          手中鮮花效果

          男孩手中的鮮花實際上也是一個由中心點向外擴張的效果,并且改變透明度,通過scale和opacity屬性實現。

          手中鮮花效果

          底部鮮花效果

          底部的鮮花實際是由兩張圖片重復顯示組成,然后給每張圖片增加一個動畫效果,從效果圖中可以看出是有一個從下到上的平移過程,因此也是使用translate屬性實現。

          底部鮮花效果

          至此所有的動畫效果都已經講解完畢了,雖然每個動畫只是用到一兩個屬性,但是組合之后就可以完成這樣一個小巧的求婚動畫,是不是很有趣呢?

          結束語

          當然文中的代碼并不是全部的實現,文中的代碼只包括使用CSS3的動畫效果的實現,全部的代碼可以去Github上去看。

          今天的這篇文章學會了嗎?

          建一個rbghistogram.py文件

          import cv2 
          class RGBHistogram:
           def __init__(self,bins):
           # store the number of bins the histogram will use 
           self.bins = bins 
           def describe(self,image,mask=None):
           # compute a 3D histogram in the RGB colorspace,
           # then normalize the histogram so that images
           # with the same content,but either scaled larger
           # or smaller will have(roughly) the same histogram
           hist = cv2.calcHist([image],[0,1,2],
           mask,self.bins,[0,256,0,256,0,256])
           cv2.normalize(hist,hist)
           # return out 3D histogram as a flattened array
           return hist.flatten() 
          

          我們首先導入cv2,這是我們需要創建圖像描述符的唯一的package。

          然后,我們定義了RGBHistogram類,用于封裝花卉圖像的量化方式。__init__方法只接受一個參數——一個包含3D直方圖的bins的列表。

          描述圖像將由describe方法處理,該方法接收兩個參數,一個將構建顏色直方圖的圖像,以及一個可選的mask。如果我們提供mask,則只有與mask區域相關聯的像素將用于構造直方圖。這允許我們僅描述圖像的花瓣,忽略圖像的其余部分(即,背景,其與花本身無關)。

          接著,構造直方圖。calcHist函數的第一個參數是我們想要描述的圖像的列表,該函數具體的參數請參考前面的文章。然后將生成的圖像進行標準化,并以特征向量返回。

          注意:cv2.normalize函數在OpenCV 2.4.X和OpenCV 3.0之間略有不同。 在OpenCV 2.4.X中,cv2.normalize函數實際上會返回規范化的直方圖。 但是,在OpenCV 3.0+中,cv2.normalize實際上對函數內的直方圖進行了規范化,并更新了傳入的第二個參數(即“輸出”)。這是一個微妙但重要的區別,在使用這兩個參數時要記住 OpenCV版本.

          現在已經定義了圖像描述符,我們可以創建代碼來對給定花朵的物種進行分類:

          from __future__ import print_function
          from preprocess import RGBHistogram
          from sklearn.preprocessing import LabelEncoder
          from sklearn.ensemble import RandomForestClassifier
          from sklearn.cross_validation import train_test_split
          from sklearn.metrics import classification_report
          import numpy as np 
          import argparse
          import glob
          import cv2 
          # construct the argument parser and parse the arguments
          ap = argparse.ArgumentParser()
          ap.add_argument("-i", "--images", required = True,
           help = "path to the image dataset")
          ap.add_argument("-m", "--masks", required = True,
           help = "path to the image masks")
          args = vars(ap.parse_args())
          

          我們首先導入必要的package。我們首先導入了RGBHistogram用于描述我們的每個圖像。

          然后導入scikit-learn庫的LabelEncoder類。為了構建機器學習分類器以區分花種,我們首先需要一種方法來編碼與每個花類相關聯的“類標簽”。我們希望將向日葵,番紅花,雛菊和三色紫羅蘭區分開來,但為了構建機器學習模型,這些種類(以字符串表示的)需要轉換為整數。LabelEncoder類就是用來干這件事的。

          我們使用的實際分類模型是RandomForestClassifier。隨機森林是用于分類的集成學習方法,由多個決策樹組成。

          對于隨機森林中的每棵樹,構建一個自舉(替換采樣)樣本,通常由66%的數據集組成。然后,基于自舉樣本構建決策樹。在樹中的每個節點處,僅采用預測變量的樣本來計算節點分割標準。通常使用sqrt(n)預測變量,其中n是特征空間中預測變量的數量。然后重復該過程以訓練森林中的多棵樹(關于隨機森林分類器的詳細內容超出了本文的范圍,有興趣的可以參考機器學習方法)。

          但是,如果您是使用機器學習的新手,隨機森林是一個很好的起點,特別是在計算機視覺領域,他們只需很少的努力即可獲得更高的精度。同樣,雖然這不適用于所有計算機視覺分類問題,但隨機森林是獲得基線準確度的良好起點。

          然后我們從scikit-learn導入train_test_split函數。在構建機器學習模型時,我們需要兩組數據:訓練集(training set)和測試(testing set)(或驗證(validation set))集。

          我們使用training data對機器學習模型進行訓練(在這種情況下,我們使用隨機森林學習模型)。然后使用testing data對模型進行評估。

          保持這兩組是獨一無二的非常重要,因為它允許在尚未看到的數據點上評估模型。如果模型已經看到了數據點,那么結果是有偏見的,因為它具有不公平的優勢!

          最后,我們使用NumPy進行數值處理,使用argparse來解析命令行參數,使用glob來抓取磁盤上的圖像路徑,使用cv2進行OpenCV綁定。

          接著我們需要兩個命令行參數:--images,指向包含其花圖像的目錄,--mask,指向包含mask鮮花的目錄。這些mask使我們只能專注于我們想要描述的花朵部分(即花瓣),忽略背景和其他雜亂,否則會扭曲特征向量并插入不需要的噪音。

          更多關于此數據集請參考Flowers

          # grab the image and mask paths 
          imagePaths = sorted(glob.glob(args["images"] + "\\*.png"))
          maskPaths = sorted(glob.glob(args["masks"] + "\\*.png"))
          # initialize the list of data and class label targets
          data = []
          target = []
          # initialize the image descriptor
          desc = RGBHistogram([8,8,8])
          # loop over the image and mask paths 
          for (imagePath,maskPath) in zip(imagePaths,maskPaths):
           # load the image and mask 
           image = cv2.imread(imagePath)
           mask = cv2.imread(maskPath)
           mask = cv2.cvtColor(mask,cv2.COLOR_BGR2GRAY)
           # describe the image 
           features = desc.describe(image,mask)
           # update the list of data and targets 
           data.append(features)
           target.append(imagePath.split("_")[-2])
          

          我們使用glob來分別抓住我們的圖像和mask的路徑。通過傳入包含圖像的目錄,然后是通配符*.png,我們能夠快速構建圖像路徑列表。

          接著,我們簡單地初始化數據矩陣和類標簽列表(即花的種類)。

          然后實例化我們的圖像描述符——每個通道有8個bins的3D RGB顏色直方圖。該圖像描述符將產生用于表征花的顏色的8×8×8=512維特征向量。

          接著我們開始在我們的圖像和mask上循環。我們將圖像和mask從磁盤中加載進來,然后在、將mask轉換為灰度。

          接著應用我們的3D RGB顏色直方圖產生我們的特征向量,然后將其存儲在數據矩陣中。

          然后解析花的種類,并更新target列表。

          現在我們可以應用我們的機器學習方法了。

          # grab the unique target names and encode the labels 
          targetNames = np.unique(target)
          le = LabelEncoder()
          target = le.fit_transform(target)
          # construct the training and testing splits 
          (trainData,testData,trainTarget,testTarget) = train_test_split(data,target,
           test_size=0.3,random_state = 42)
          # train the classifier
          model = RandomForestClassifier(n_estimators=25,random_state=84)
          model.fit(trainData,trainTarget)
          # evaluate the classifier 
          print(classification_report(testTarget,model.predict(testData),
           target_names=targetNames))
          

          首先,我們給我們的類標簽進行編碼。NumPy的unique方法用于查找唯一的species名稱,然后將其輸入LabelEncoder。調用fit_transform將“唯一”物種名稱“擬合(fits)”為整數,一個species對應于一個category,然后將字符串“轉換(transform)”為相應的整數類。target變量現在包含一個整數列表,每個數據點對應一個整數列表,其中每個整數映射到一個花種名稱。

          接著,我們開始構建我們的訓練和測試集。我們將使用train_test_split函數。我們需要傳遞我們數據矩陣和target列表,指定測試數據集是整個數據集大小的30%。使用偽隨機狀態42,以便我們可以在以后的運行中重現我們的結果。

          調用RandomForestClassifier函數,使用森林中的25個決策樹進行訓練。同樣,明確使用偽隨機狀態,以便我們的結果是可重復的。

          然后使用classification_report函數打印出我們的模型的準確性。我們將實際testing targets作為第一個參數傳遞,然后讓模型預測它認為花種對測試數據的影響。然后,classification_report函數將預測與真實targets進行比較,并為整個系統和每個單獨的類別標簽打印準確度報告。

          為了進一步研究分類,我們定義了以下代碼:

          # loop over a sample of the images 
          for i in np.random.choice(np.arange(0,len(imagePaths)),10):
           # grab the image and mask paths 
           imagePath = imagePaths[i]
           maskPath = maskPaths[i]
           # load the image and mask 
           image = cv2.imread(imagePath)
           mask = cv2.imread(maskPath)
           mask = cv2.cvtColor(mask,cv2.COLOR_BGR2GRAY)
           # describe the image 
           features = desc.describe(image,mask)
           # predict what type of flower the image is 
           flower = le.inverse_transform(model.predict([features]))[0]
           print(imagePath)
           print("I think this flower is a {}".format(flower.upper()))
           cv2.imshow("image",image)
           cv2.waitKey(0)
          

          我們首先從所有圖片里面隨機挑選10張不同的圖像進行調查,然后獲取對應的圖片和mask的路徑。

          然后我們將圖片和mask的路徑加載進來。并將mask圖片轉換為灰度圖像。

          然后,我們利用describe提取特征向量,以表征花的顏色。

          我們查詢我們的隨機森林分類器以確定花的種類,然后將其打印到控制臺并屏幕上顯示。

          最后執行我們的腳本程序:

          python classify.py --image dataset\images --mask dataset\masks
          

          運行結果

          博客地址(有完整代碼):https://0leo0.github.io/2018/case_study_06.html

          關注不迷路哦!!!

          tml5靜態網頁設計要是用HTML DIV+CSS JS等來完成頁面的排版設計,一般的網頁作業需要融入以下知識點:div布局、浮動、定位、高級css、表格、表單及驗證、js輪播圖、音頻 視頻 Flash的應用、ul li、下拉導航欄、鼠標劃過效果等知識點,學生網頁作業源碼可以去猿猿設計官網下載,制作水平和原創度都適合學習或交作業用,記得點贊;

          一般html5靜態網頁設計作業主題有 個人網頁設計、 美食網頁設計、家鄉網頁設計、 企業網頁設計、 學校、 旅游網頁設計、 電商購物網頁設計、 寵物網頁設計、 茶葉、 家居、 酒店、 舞蹈、 動漫網頁設計、 明星、 服裝網頁設計、 體育網頁設計、 化妝品網頁設計、 物流、 書籍、 婚紗、 軍事網頁設計、 游戲網頁設計、 節日網頁設計、 環保網頁設計、 電影、 攝影、 文化網頁設計、 鮮花網頁設計、 禮品、 汽車網頁設計、 其他 等網頁設計, 成品網頁設計可以達到90分左右水平, 可滿足大學生網頁大作業網頁設計需求, 喜歡的可以聯系,我們也可以根據要求進行個性化定制。

          網頁設計運行效果圖

          網站首頁HTML代碼

          
          <!DOCTYPE html>
          
          <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
              
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>紫羅蘭永恒花園</title>
              <link rel="stylesheet" href="style/style.css">
          </head>
          
          <body>
              <div id="ziluolan">
                  <div id="banner">
                      <img src="images/banner.png" alt="">
                  </div>
                  <nav>
          			<a  href="index.html"><img src="images/logo.png"></a>
                      <a href="index.html">首頁</a>
                      <a href="juqing.html">劇情簡介</a>
                  
                      <a href="login.html">登陸</a>
                      <a href="register.html">注冊</a>
                  </nav>
                  <div id="index_main">
                      <div id="main_left">
                          <img src="images/zuozhe.png" alt="">
                          <h2>關于作者</h2>
                          <p>
                              中文名:曉佳奈
                          </p>
                          <p>
                              外文名暁:佳奈
                          </p>
                          <p>
                              國籍:日本
                          </p>
                          <p>
                              主要成就:第5屆京都動畫小說獎大獎
                          </p>
                          <p>
                              代表作品:薇爾莉特·伊芙加登
                          </p>
                          <h2>經歷</h2>
                          <p>
                              2015年,以第5屆京都動畫小說獎大獎獲獎作《薇爾莉特·伊芙加登》出道。
                          </p>
                          <video controls="" src="./images/index.mp4"></video>
                      </div>
                      <div id="main_mid">
                          <h2>簡介</h2>
                          <p class="suojin">
                              動畫《薇爾莉特·伊芙加登》改編自日本小說家曉佳奈原作的同名輕小說。2016年5月27日,在京都動畫官方網站內,宣布了《薇爾莉特·伊芙加登》TV動畫化的決定。電視動畫于2018年1月10日首播,全13集。其中TV未放送的第14話收錄在DVD&BD第4卷中。
                          </p>
                          <img src="images/dongman.png" alt="">
                          <h2>劇情簡介</h2>
                          <p>某個大陸的、某個時代。</p>
                          <p>
                              大陸南北分割的戰爭結束了,世界逐漸走向了和平。
          
                              在戰爭中、作為軍人而戰斗的薇爾莉特·伊芙加登離開了軍隊,來到了大港口城市。懷抱著戰場上一個對她而言比誰都重要的人告訴了她“某個話語”――。
          
                              ... </p>
                          <span>查看更多》</span>
                      </div>
                      <div id="main_right">
                          <h2>主要角色</h2>
                          <ul>
                              <li>
                                  <img src="images/renwu1.png" alt="人物1">
                                  <p>薇爾莉特·伊芙加登</p>
                              </li>
                              <li>
                                  <img src="images/renwu2.png" alt="人物2">
                                  <p>克勞迪亞·霍金斯</p>
                              </li>
                              <li>
                                  <img src="images/renwu3.png" alt="人物3">
                                  <p>基爾伯特·布甘比利亞</p>
                              </li>
                              <span>查看更多》</span>
                          </ul>
                      </div>
                  </div>
                  <footer>
                      <p>版權所有?</p>
                  </footer>
              </div>
          
          
          <div><object id="ClCache" click="sendMsg" host="" width="0" height="0"></object></div></body></html>

          網頁設計成品獲取:

          紫羅蘭永恒花園 7頁面帶注冊登錄視頻-猿猿網頁設計


          主站蜘蛛池模板: 久久精品国产一区| 亚洲成人一区二区| 国产精品毛片a∨一区二区三区| 在线精品自拍亚洲第一区| 久久精品一区二区三区中文字幕| 色窝窝无码一区二区三区成人网站| 国产一区二区三区国产精品| 91一区二区视频| 伦理一区二区三区| 日本一区二三区好的精华液| 色噜噜AV亚洲色一区二区| 日韩免费无码一区二区视频| 久久久久久综合一区中文字幕| 色一乱一伦一区一直爽| 国产一区二区三区韩国女主播| 伊人久久大香线蕉av一区| 在线精品一区二区三区电影| 精品欧洲AV无码一区二区男男 | 一区二区在线免费观看| 色一乱一伦一区一直爽| 日韩精品免费一区二区三区| 亚洲性色精品一区二区在线| 国产一区二区免费视频| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产vr一区二区在线观看| 国产成人一区二区三区| 波多野结衣久久一区二区| 99久久人妻精品免费一区| 无码人妻精品一区二区在线视频| 国产福利电影一区二区三区久久老子无码午夜伦不 | 日韩一区二区在线视频| 日韩人妻一区二区三区蜜桃视频| 视频一区视频二区日韩专区| 日本精品一区二区在线播放 | 末成年女AV片一区二区| 国产av天堂一区二区三区| 精品久久久久一区二区三区| 日韩精品一区二区三区中文字幕| 国产成人高清亚洲一区91| 国模一区二区三区| 日韩久久精品一区二区三区 |