imadjust使用opencv實現

2021-08-13 11:59:15 字數 3261 閱讀 2569

實現函式功能

j = low_out +(high_out - low_out).* ((i - low_in)/(high_in - low_in)).^ gamma 

[cpp]view plain

copy

print

? iplimage* imageadjust(iplimage *src, iplimage *dst,    

double low_in, double high_in,    

double low_out, double high_out, double gamma )    

}    

return 0;    

}    

iplimage* imageadjust(iplimage *src, iplimage *dst,  

double low_in, double high_in,

double low_out, double high_out, double gamma )

} return 0;

}

測試**:

效果圖 原圖

emgu cv 版本

[csharp]view plain

copy

print

? private

void imageadjust(imagebyte>src,imagebyte>dst,double low_in, double high_in,  

double low_out, double high_out, double gamma)  

}  }  

private void imageadjust(imagesrc,imagedst,double low_in, double high_in,

double low_out, double high_out, double gamma)}}

上面的**對於大圖執行效率低,下面我寫個優化版的

**如下:

[csharp]view plain

copy

print

? private

void imadjust(imagebyte> src)    

private void imadjust(imagesrc)

都是採用向量化(向量化)程式設計方式,效率不會差,但是我是簡單實現,假設輸出為最小為0 最大值為255的情況,且gamma 為1時的情況

如果需要別的情形需要自己根據情況編寫。

實現函式功能

j = low_out +(high_out - low_out).* ((i - low_in)/(high_in - low_in)).^ gamma 

[cpp]view plain

copy

print

? iplimage* imageadjust(iplimage *src, iplimage *dst,    

double low_in, double high_in,    

double low_out, double high_out, double gamma )    

}    

return 0;    

}    

iplimage* imageadjust(iplimage *src, iplimage *dst,  

double low_in, double high_in,

double low_out, double high_out, double gamma )

} return 0;

}

測試**:

效果圖 原圖

emgu cv 版本

[csharp]view plain

copy

print

? private

void imageadjust(imagebyte>src,imagebyte>dst,double low_in, double high_in,  

double low_out, double high_out, double gamma)  

}  }  

private void imageadjust(imagesrc,imagedst,double low_in, double high_in,

double low_out, double high_out, double gamma)}}

上面的**對於大圖執行效率低,下面我寫個優化版的

**如下:

[csharp]view plain

copy

print

? private

void imadjust(imagebyte> src)    

private void imadjust(imagesrc)

都是採用向量化(向量化)程式設計方式,效率不會差,但是我是簡單實現,假設輸出為最小為0 最大值為255的情況,且gamma 為1時的情況

如果需要別的情形需要自己根據情況編寫。

安卓使用ImageView顯示OpenCV Mat

對opencvmat 型進行測試,c 的highgui顯示函式是無效的,因為視窗不能直接從android介面彈出。需要使用imageview進行顯示以便檢視影象處理的結果,因此我借鑑了少許 suppresslint sdcardpath private int tracktestcv private...

Matlab中 imadjust函式用法

imadjust在數字影象處理中用於進行影象的灰度變換 調節灰度影象的亮度或彩色影象的顏色矩陣 imadjust函式用法如下 j imadjust i j imadjust i,low in high in low out high out j imadjust i,low in high in l...

OPENC函式 UF ATTR函式 UF ATTR

1 uf initialize 23 tag t object 433890 4 int indx 0 5 int type uf attr any 6char title uf attr max title len 1 7 uf attr value t value 8 迴圈讀取程式的屬性 9 u...