簡體   English   中英

OpenCV圖像大小調整和輸入位圖格式

[英]OpenCV image resizing and input bitmap format

我考慮是否以BGRA格式或RGBA格式傳遞給IplImage *input圖像,以便使用可用的插值算法調整其大小是否有問題:

NTER_NEAREST - a nearest-neighbor interpolation
INTER_LINEAR - a bilinear interpolation (used by default)
INTER_AREA - resampling using pixel area relation. It may be a preferred method for image decimation, as it gives moire’-free results. But when the image is zoomed, it is similar to the INTER_NEAREST method.
INTER_CUBIC - a bicubic interpolation over 4x4 pixel neighborhood
INTER_LANCZOS4 - a Lanczos interpolation over 8x8 pixel neighborhood

調整大小的圖像將被重新檢索到RGBA緩沖區中。 因此,我認為轉換RGBA -> BGRA並調整BGRA -> RGBA大小后的其他操作將是多余的,只會減慢我的圖像調整大小。 也許我是錯的,但是使用上述插值法時,圖像將采用正確格式的BGRA。

IplImage *image = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 4);
    cvSetData(image, rgbaData, image->widthStep);

    // resize image
    float scale = 0.5;
    IplImage *resizedImage = cvCreateImage(cvSize(image->width*scale, image->height*scale), image->depth, image->nChannels);
    cvResize(image, resizedImage, CV_INTER_LANCZOS4);

總結一下我的問題是: IplImage * 的圖像是否為BGRA數據格式是否重要而我想使用cvResize()和以上插值來調整大小

不,絕對沒有區別。 為了證明,您可以在這里檢查: opencv代碼 該代碼有點難讀,因為它使用數學插值公式和sse內在函數的表示法。

相同的權重用於插值R,G,B,A。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM