1. 程式人生 > >OpenCV學習筆記(21)在OpenCV視窗中建立滾動條瀏覽大圖

OpenCV學習筆記(21)在OpenCV視窗中建立滾動條瀏覽大圖

很久沒發部落格了,趁著近期專案需要,再和大家分享一個小程式,即在OpenCV視窗中建立水平、豎直滾動條來瀏覽大型影象。如果我們所要顯示的影象畫素較高,例如1440*900的,而顯示器只有 1280*800的解析度,那麼通過cvNamedWindow建立的最大視窗也只能看到部分影象,其餘的因為超出視窗大小看不到了,也沒有滾動條用來滾動觀察其餘影象,這樣,就不方便我們通過視窗對影象進行互動操作。通常滾動條是在MFC介面上建立的,這方面的例程很多,例如 http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=8349 ;也有使用OpenCV的Trackbar的例子,但Trackbar只有水平滾動、沒有垂直方式,而且是按1為步長,使用時不方便、也佔用了不少視窗空間。下面這段例程展示了怎樣通過 cvSetMouseCallback, cvRect, cvRectangleR, cvResize 等一系列OpenCV函式來建立方便、可隨意定製的滾動條。

snap1

snap2

  

程式還只是實現了比較初步的功能,只能通過滑鼠拖曳滾動條來瀏覽影象,不能通過滑鼠中鍵滾輪實現上下滾動,這個主要是 cvSetMouseCallback 裡的 Event 不包括滾輪滑動事件,有空再探索下解決辦法。歡迎大家一起交流討論。

相關推薦

OpenCV學習筆記21OpenCV視窗建立滾動瀏覽

很久沒發部落格了,趁著近期專案需要,再和大家分享一個小程式,即在OpenCV視窗中建立水平、豎直滾動條來瀏覽大型影象。如果我們所要顯示的影象畫素較高,例如1440*900的,而顯示器只有 1280*800的解析度,那麼通過cvNamedWindow建立的最大視窗也只能看到部分

OpenCV學習筆記在XCode配置OpenCV

簡介 這個配置方法不僅僅只適用於OpenCV,其他的三方庫也是同樣的配置,比如像FFmpeg呀等都是一樣的配置 配置方法 Mac上需要先安裝好cmake 這個直接使用brew安裝就行 Mac安裝OpenCv,這個使用:brew install opencv 命令列直

OpenCV學習筆記—— OpenCV 3.1.0 + opencv_contrib編譯Windows

        由於在學習影象識別中的特徵點檢測中,需要用到Surf和Sift演算法,但是這兩個演算法在OpenCV 3.1.0的Release版本中並不存在,因為他們是存放在opencv_contr

OpenCV學習筆記—— OpenCV for Android實時影象處理

        在上篇中我們已經實現了相機開啟和實時影象資訊的獲取,那麼接下來我們可以嘗試在獲取的影象資訊進行一些處理,然後實時顯示出來,在這裡我們要完成的的幾種處理:         灰化、Canny邊緣檢測、Hist直方圖計算、Sobel邊緣檢測、SEPIA(色調變換)

OpenCV學習筆記OpenCV 3.4.1 + VS2017 配置

對於EmguCV3.4.1的配置花了我兩天的時間,本來導師要求配置這個但是測試的時候有一個報錯資訊。為此我參考了各大部落格,無論是調debuger,還是x64,x86檔案的拷貝,都居然是失敗,無語死了,真的想吐槽。一怒之下,還是裝起C++的opencv3.4.1吧,硬著頭皮上

OpenCV學習筆記31KAZE 演算法原理與原始碼分析KAZE的原始碼優化及與SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

OpenCV學習筆記30KAZE 演算法原理與原始碼分析KAZE特徵的效能分析與比較

      KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構

OpenCv學習筆記—cv::Mat學習

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

OpenCV學習筆記之影象畫素的提取

     提取影象的畫素及畫素索引 Mat src, dst; src = imread("mountainandwater.jpg"); //讀取影象 if (src.empty()) { qDebug()<<"can

Python + OpenCV 學習筆記>>> Numpy 陣列操作

將影象畫素迭代取反: import cv2 as cv import numpy as np def access_pixels(image): print(image.shape) height = image.shape[0]

Python + OpenCV 學習筆記>>> 載入視訊流

在這有一點要注意: 由於我使用的是樹莓派原裝攝像頭,故不能直接被cv.VideoCapture(0) 所檢測到,所以要先修改/etc/modules 檔案,在其末尾新增bcm2835-v4l2,儲存重啟,隨後在/dev/目錄中就能發現多了個video0 裝置 import cv2 a

Python + OpenCV 學習筆記>>> 影象的載入與儲存

影象屬性: 通道數目 高與寬 畫素資料 影象型別 顯示一張圖片: import cv2 as cv src = cv.imread("/home/pi/Desktop/apple.jpg") cv.namedWindow("input im

OpenCv 學習筆記

一、cv::Mat image 建立一個寬和高都是0的影象,可以通過呼叫cv::Mat的size()方法來獲取該影象的尺寸,預設為0*0。 二、對一個影象檔案的讀取 cv::Mat pic; //mat類是用於儲存影象以及其他矩陣資料的資料結構,預設下,它的尺寸為了0

Python + OpenCV 學習筆記>>>圖片切割、合併與填充

圖片切割: 利用python 的切片: def cut(m1): m2 = m1[50:100, 200:300] #對圖片第50到100行,200到300列區域進行切割 cv.imshow('cut', m2) m1[100:150, 400:500] = m

Python + OpenCV 學習筆記>>> 畫素運算

1. 算數運算 注意:兩幅影象的畫素大小要一致 進行影象畫素之間的算術運算,首先要匯入影象,讀取其中資訊: m1 = cv.imread("/home/pi/Desktop/m1.jpg") m2 = cv.imread("/home/pi/Desktop/m2.jpg")

OpenCV學習筆記6--Image Gradients影象梯度

opencv提供了三種梯度過濾器或高通過濾器Sobel、Scharr、Laplacian.(高通濾波器high-pass fliter(HPF) 尋找圖片的邊界) 1.Sobel and Scharr Derivatives(衍生)     Sobel operators

OpenCV學習筆記7--Canny Edge Detection Canny邊緣檢測

    Canny 邊緣檢測是很流行的邊緣檢測演算法,是在1986年由John F.Canny提出的。它是一個多級(multi-stage)演算法。下面詳細介紹每一級。     1.減少噪音         因為邊緣檢測對噪音非常敏感,所以實現邊緣檢測的第一步,是使用高斯

Opencv學習筆記1---------Codeblocks執行按鈕變灰

水母魚要學opencv了,決定把自己遇到的一些問題記錄下來,就當做一個勉勵吧,也幫大家少走一點彎路。 一遇見問題 今天水母魚就遇見了一個問題,發現有時候Codeblocks執行之後因為錯誤卡住了,生成和執行按鈕全部灰掉, 點執行會顯示編譯器還在執行中,直接關閉codeb

Opencv學習筆記2---Codeblocks常用技巧

   作為一個常用的IDE(整合開發環境),如果使用得當,可以節省很多的時間,但是由於沒有掌握技巧,所以一直沒有充分發揮出CodeBlocks的功能,真實入寶山而空歸啊,所以特意寫一下,希望能夠幫助大家。新建Opencv專案這裡就不加介紹了。 一、CodeBlocks改變註

OpenCV學習筆記環境配置、影象基本操作、Mat物件

     終於,在國慶假期結束後開始上手OpenCV,一直嚮往著學習影象處理,上手OpenCV後越發覺得影象處理的有趣,確實OpenCV對於培養學習影象處理的興趣以及作為深究演算法的開始無疑是適合的。      我所使用的環境是Win10+OpenCV3.4.3+VS201