opencv 繪制半透明圖形
標 |
初學OpenCV,想繪制半透明矩形,卻發現沒有GDI+那么簡單,在網上搜尋了一番任未得其解,偶然翻到一個對兩張圖片進行像素值加權疊加的函數cvAddWeighted,於是參照例程加以改造寫了一個繪制半透明矩形的封裝方法:
void DrawTransRec(IplImage* img,int x,int y,int width,int height,CvScalar color,double alpha)
{
}
然而受ROI只能設置為矩形的限制,如果我想繪制其他形狀比如圓形改怎么辦呢,其實只要3行代碼就可以搞定了:復制原圖,在新圖上繪制,與原圖加權疊加。代碼如下:
#include "stdafx.h"
#include <cxcore.h>
#include <highgui.h>
void DrawTransRec(IplImage* img,int x,int y,int width,int height,CvScalar color,double alpha)
{
}
int _tmain(int argc, _TCHAR* argv[])
{
}
當然這樣也會帶來不必要的開銷,即不加以區別的對所有像素點都進行了加權計算,應該可以通過設置ROI來改善。