就一個簡單的直方圖對比,c++中 很簡單的東西,翻譯到delphi就報錯!
HistogramBins :=256;
setlength(HistogramRange1,2);
HistogramRange1[0]:=0;
HistogramRange1[1]:=255;
setlength(HistogramRange,1);
HistogramRange[0]:=@HistogramRange1[0];
if image1.nChannels<>1 then
begin
srcImage := cvCreateImage(cvSize(image1.width, image1.height), image1.depth, 1);
cvCvtColor(image1, srcImage, CV_BGR2GRAY);
end
else
srcImage := image1;
if image2.nChannels<>1 then
begin
targetImage := cvCreateImage(cvSize(image2.width, image2.height), image2.depth, 1);
cvCvtColor(image2, targetImage, CV_BGR2GRAY);
end
else
srcImage := image2;
//下面出現問題了
Histogram1:=cvCreateHist(1,@HistogramBins,CV_HIST_ARRAY,HistogramRange);
//問題出在 這里, 報錯 e06d7363
cvCreateHist(1,@HistogramBins,CV_HIST_ARRAY,HistogramRange);
//如果這樣 不給 Histogram1 賦值就不報錯。
uj5u.com熱心網友回復:
其中if image1.nChannels<>1 then
begin
srcImage := cvCreateImage(cvSize(image1.width, image1.height), image1.depth, 1);
cvCvtColor(image1, srcImage, CV_BGR2GRAY);
end
else
srcImage := image1;
if image2.nChannels<>1 then
begin
targetImage := cvCreateImage(cvSize(image2.width, image2.height), image2.depth, 1);
cvCvtColor(image2, targetImage, CV_BGR2GRAY);
end
else
srcImage := image2;
這段代碼 沒用,貼的時候 沒注意
uj5u.com熱心網友回復:
cvCreateHist回傳的是指標, Histogram1的定義你沒有給出,估計不是指標吧?uj5u.com熱心網友回復:
var Histogram1 :pCvHistogram; 這樣定義的uj5u.com熱心網友回復:
把Histogram1:=cvCreateHist(1,@HistogramBins,CV_HIST_ARRAY, HistogramRange)其中的HistogramRange改為@HistogramRange[0]試試。
HistogramRange是動態陣列,HistogramRange的資料起始的指標是@HistogramRange[0],不是HistogramRange
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/37814.html
上一篇:oracle資料匯入sql中
