中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么實現圖像特效顯示

發布時間:2022-01-04 10:02:34 來源:億速云 閱讀:299 作者:iii 欄目:大數據

本篇內容介紹了“C++怎么實現圖像特效顯示”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

圖像掃描顯示

向下掃描就是對圖像進行分塊并延時顯示。

可以通過不斷的改變顯示的roi區域來達到掃描的效果:

void scanning_down(){  //讀取圖片  Mat srcImage, dstImage;  srcImage = imread("2.jpg");  imshow("原圖", srcImage);  //定義變量  Mat roiImage;  int ImageHeigth = srcImage.rows;  int ImageWidth = srcImage.cols;  namedWindow("向下掃描");  for (int i = 1; i < ImageHeigth; i++) {//步長為1    roiImage = srcImage(Rect(0, 0, ImageWidth, i));    roiImage.copyTo(dstImage);    imshow("向下掃描", dstImage);    waitKey(5);  }  waitKey(0);}

動圖

C++怎么實現圖像特效顯示

向上,向左,向右掃描顯示同理。

圖像漸顯
     

圖像漸顯思路是先記錄下圖像每個像素點的像素值,顯示的時候先將屏幕置黑,將循環顯示圖像n次,n依次為0,1,2,...,256。每一次顯示像素值的n/256倍,從而達到漸顯的效果。

void fade_in()//淡入{  //讀取圖片  Mat srcImage, dstImage;  srcImage = imread("2.jpg");  dstImage = srcImage.clone();  imshow("原圖", srcImage);  //定義變量  Mat roiImage;  int ImageHeigth = srcImage.rows;  int ImageWidth = srcImage.cols * 3;  namedWindow("圖像漸顯");  for (int n = 1; n < 256; n++) {    for (int i = 0; i < ImageHeigth; i++) {      uchar* data1 = srcImage.ptr<uchar>(i);      uchar* data2 = dstImage.ptr<uchar>(i);      for (int j = 0; j < ImageWidth; j++) {        data2[j] = data1[j] * n / 256;
     }    }    imshow("圖像漸顯", dstImage);    waitKey(10);  }}

動圖

C++怎么實現圖像特效顯示

馬賽克顯示
     

馬賽克顯示是將圖片分為固定大小的小塊,并記錄下所有小塊的左上角坐標,然后隨機將這些小塊顯示出來,就是馬賽克效果。

//圖像馬賽克顯示void mosaic() {  //讀取圖片  Mat srcImage, dstImage;  srcImage = imread("2.jpg");  dstImage = Mat(srcImage.size(), CV_8UC3);  imshow("原圖", srcImage);  //定義變量  Mat roiImage;  int ImageHeigth = srcImage.rows;  int ImageWidth = srcImage.cols;  namedWindow("圖像馬賽克顯示");  //存儲每個小塊的首地址并隨機打亂  int step =24;//定義馬賽克邊長(正方形)  vector<Point2d> temp;  unsigned int mi = 0;  //for循環存儲所有節點坐標  for (int x = 0; x < ImageWidth; x = x + step) {    for (int y = 0; y < ImageHeigth; y = y + step) {      if (x > ImageWidth - step) {        x = ImageWidth - step;      }      if (y > ImageHeigth - step) {        y = ImageHeigth - step;      }      temp.push_back(Point2d(x,y));      mi++;    }  }    random_shuffle(temp.begin(), temp.end());//打亂容器內元素  //for循環顯示每個隨機馬賽克  for (int i = 0; i < mi; i++) {    srcImage(Rect(temp[i].x, temp[i].y, step, step)).copyTo(dstImage(Rect(temp[i].x, temp[i].y, step, step)));    imshow("圖像馬賽克顯示", dstImage);    waitKey(1);  }  waitKey(0);}

動圖

C++怎么實現圖像特效顯示


“C++怎么實現圖像特效顯示”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

海原县| 嵩明县| 筠连县| 泰和县| 紫金县| 会昌县| 乐清市| 手机| 南充市| 墨竹工卡县| 长汀县| 榆林市| 周宁县| 贺州市| 蓬莱市| 彭州市| 东至县| 伊春市| 文昌市| 万源市| 溧阳市| 吴川市| 罗江县| 罗定市| 黔西| 右玉县| 屏南县| 姜堰市| 宝清县| 三河市| 怀来县| 泽库县| 喀喇| 武定县| 武汉市| 鄂伦春自治旗| 大渡口区| 公安县| 房产| 昌吉市| 上饶县|