opencv圖像仿射變換和普通旋轉

背景:今天需要對程序生成的圖像進行旋轉90度和下采樣操作,當然還有改變圖像類型的操作,就是把原來.png的圖像轉換為.jpg的圖像,主要是我目前使用libharu庫,無法成功從本地加載png圖像到pdf中去,不得不使用jpg圖像。我的圖像是橫向的,為了能夠更大的呈現在pdf中,我需要將圖像旋轉90度,得到豎向的圖像。

我最初使用的方法是這樣的

?

cv::Mat temp, dest;
cv::Mat img1 = cv::imread("dancer.png");cv::imshow("org", img1);
對讀入的圖像進行旋轉90度
cv::Point2f center(img1.cols / 2, img1.rows / 2);
cv::Mat M = getRotationMatrix2D(center, 90, -1);
warpAffine(img1, dest, M, cv::Size(img1.cols, img1.rows));cv::imshow("dest", dest);
//將旋轉后的圖像降分辨率cv::imwrite("img1.png", dest);
cv::waitKey(0);

經過上面的方式對圖像旋轉90度后,得到的圖像如下圖,硬生生被截掉一截,

?

后來找到了這種方法,直接可以旋轉90度,180度

cv::Mat temp, dest;
cv::Mat cover = cv::imread("dancer.png");
cv::imshow("org", cover);
transpose(cover, temp);
flip(temp, dest, 1);
cv::imshow("temp", temp);
cv::imshow("dest", dest);
cv::imwrite("temp.png", temp);
cv::imwrite("dest.png", dest);
cv::waitKey(0);

原始圖像

?

經過tranpose進行變換的圖像,達到的效果是對原圖像順時針旋轉90度,且進行鏡面變換。

?

既然進行了鏡面變換,那我再給他鏡面回來不久好了。使用flip函數進行鏡面變換,我們可以看到,下面的圖像就是將原始圖像順時針旋轉90度的結果了。

?

下面實現將圖像旋轉180度。

cv::Mat temp, dest;
cv::Mat cover = cv::imread("dancer.png");
cv::imshow("org", cover);
flip(cover, dest, -1);
cv::imshow("dest", dest);
cv::imwrite("dest.png", dest);
cv::waitKey(0);

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

討厭麻煩的ora 01722無效數字

webservice開發過程中,數據庫由原來的oracle改為現在的sql server。然后重新調試,結果報出ora 01722無效數字的錯誤。 由于連接oracle數據庫的時候并沒有問題,所以一開始我以為是數據庫不同,導致部分數據類型差異,&…

CSS樣式:覆蓋規則

規則一&#xff1a;由于繼承而發生樣式沖突時&#xff0c;最近祖先獲勝。 CSS的繼承機制使得元素可以從包含它的祖先元素中繼承樣式&#xff0c;考慮下面這種情況: <html><head><title>rule 1</title><style>body {color:black;}p {color:blue;}…

try{}里有一個 return 語句,那么緊跟在這個 try 后的 finally {}里的 code 會 不會被執行,什么時候被執行,在 return 前還是后?...

這是一道面試題&#xff0c;首先finally{}里面的code肯定是會執行的&#xff0c;至于在return前還是后&#xff0c; 看答案說的是在return后執行&#xff0c;我覺得不對&#xff0c;百度了一下&#xff0c;有說return前的&#xff0c;有說return后的&#xff0c;還有return中間…

相機和鏡頭選型需要注意哪些問題

背景&#xff1a; 最近需要優于項目需求需要對工業相機和鏡頭進行選型&#xff0c;于是我就開啟的學習相機之旅&#xff0c;雖然我一直在做機器視覺方向&#xff0c;但是我對相機的了解還是很少&#xff0c;我想正好趁這次機會好好學習一下。如果有錯誤的觀點請指正。 一、相…

響應式網頁布局 - W3Schools How-Tos 01

W3Schools教學系列 W3Schools是知名的網頁設計&#xff0f;前端開發教學網站&#xff0c;不僅提供HTML、CSS、JavaScript等的詳盡教學&#xff0c;還可以把它當作說明文件&#xff08;Documents&#xff09;。有經驗的前端或多或少已經接觸過這個網站&#xff0c;因為它經常出現…

正則表達式,終極使用!3個工具,搞定一切

文章前提&#xff0c;本人。不會正則的不論什么語法&#xff0c;僅僅懂一點正則的概念。本人從未自己寫過正則&#xff0c;都是網上收羅進行改動的。相同。沒有時間去研究正則。 可是為了方便&#xff0c;入手了幾個工具。 如今就為大家一一展示。 第一個&#xff0c;regexBuil…

iOS 在tableview的側滑事件里執行tableView.selectRow無效的解決辦法

很奇怪的問題&#xff0c;在執行默認選中一個cell的時候&#xff0c;突然發現這句話不起作用了 &#xff08;我的場景是&#xff1a;當前cell側滑刪除后&#xff0c;默認選中上一個cell&#xff09; 搞了半天&#xff0c;終于發現罪魁禍首竟然是因為&#xff1a;這句話寫在了側…

VS2017 C++工程 執行python腳本

我解決了哪怕很小的一個問題&#xff0c;我也想記錄下來來見證我的經歷。 背景&#xff1a; 一、使用libhuru庫生成pdf報告 最近參與一些測試工作&#xff0c;希望測試結束后能夠根據測試得到的數據和圖像自動生成測試報告&#xff0c;最開始調研到了生成報告的庫有libharu和…

標準正弦波變頻電源調制方式的實現

目前變頻電源正不斷向規模化、專業化、智能化、精細化方向發展。變頻電源的技術隨著工業電器電子制造的興起而不斷得到重視和發展。其中,中港揚以正弦脈SPWM為核心變頻電源系統電路便是一個很好的代表。純硬件電路在焊接電路上比較復雜&#xff0c;但是調節出來的SPWM波形比較完…

Jmeter教程索引貼

Jmeter教程索引貼 新的一年即將到來&#xff0c;不知不覺2015年自己在Jmeter方面總結的文章有十幾篇&#xff0c;在此匯總一下&#xff0c;順便也算是個總結吧。2016年&#xff0c;繼續學習技術&#xff0c;總結&#xff0c;寫文章。 一、基礎部分&#xff1a; 使用Jmeter進行h…

類與接口(二)java的四種內部類詳解

引言 內部類&#xff0c;嵌套在另一個類的里面&#xff0c;所以也稱為 嵌套類; 內部類分為以下四種&#xff1a; 靜態內部類成員內部類局部內部類匿名內部類一、靜態內部類 靜態內部類&#xff1a; 一般也稱”靜態嵌套類“&#xff0c;在類中用static聲明的內部類。 因為是stat…

單例設計模式和多線程

單例設計模式 單例&#xff1a;整個項目中&#xff0c;有某個類或者某些特殊的類&#xff0c;屬于該類的對象只能建立一個。 #include<iostream> using namespace std;class MyCAS { private:MyCAS(){}private:static MyCAS *m_instance;public:static MyCAS *GetInstanc…

運行imgui例程

背景&#xff1a;目前在做一個視覺測試系統&#xff0c;需要做一個界面&#xff0c;將相機獲取的圖像&#xff0c;以及測試過程中的數據呈現在界面上&#xff0c;在我印象里&#xff0c;做界面就用qt吧&#xff0c;直到這個月真要開始做界面了&#xff0c;我的領導給我建議用im…

性能測試總結(三)--工具選型篇

性能測試總結(三)--工具選型篇 本篇文章主要簡單總結下性能測試工具的原理以及如何選型。性能測試和功能測試不同&#xff0c;性能測試的執行是基本功能的重復和并發&#xff0c;需要模擬多用戶&#xff0c;在性能測試執行時需要監控指標參數&#xff0c;同時性能測試的結果不是…

創建一個最簡單的imgui測試用例

在上一篇文章中&#xff0c;我們初步認識了一下imgui,并且成功運行了他提供的demo。這只是開始學習imgui的第一步&#xff0c;在實際使用時&#xff0c;我們需要將imgui應用到自己的工程中去&#xff0c;所以你需要具備將imgui加到你工程中去的能力&#xff0c;簡單起見&#x…

idea中maven的setting.xml的配置

2019獨角獸企業重金招聘Python工程師標準>>> <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…

ref和out區別總結

ref&#xff1a;是必需要先初始化才能用,但調用時可以對它什么也不做.out&#xff1a;可以不初始化也能用,但調用時一定要對其賦值(即使已經初始化的也要賦值,哪怕是賦一個和原來一樣的值).轉載于:https://www.cnblogs.com/gjnsmallworld/p/7216206.html

繼 承(面向對象特征之一)

1&#xff1a;成員變量。 當子父類中出現一樣的屬性時&#xff0c;子類類型的對象&#xff0c;調用該屬性&#xff0c;值是子類的屬性值。 如果想要調用父類中的屬性值&#xff0c;需要使用一個關鍵字&#xff1a;super This&#xff1a;代表是本類類型的對象引用。 Super&…

如何將cv::Mat類型轉換為imgui中的ImTextureID類型

背景&#xff1a; 我原來的工程是使用opencv的&#xff0c;所以程序中的圖像都是表示為cv::Mat類型&#xff0c;為了能夠在imgui窗口中顯示我的cv::Mat的圖像&#xff0c;我找到了下面這個函數&#xff1a; void ImGui::Image(ImTextureID user_texture_id, const ImVec2&…

react native 原生模塊橋接的簡單說明

原文出自&#xff1a;https://github.com/prscX/awes...博客鏈接&#xff1a;https://ssshooter.com/2019-02... Android 創建原生模塊包 通過繼承 ReactPackage 為你的原生模塊包創建 Java 類&#xff0c;可以這么寫&#xff1a;覆蓋 createNativeModules 和 createViewManage…