您好,登錄后才能下訂單哦!
1.原始問題:
src = imread("**.jpg"); GpuMat srcImg(src); GpuMat hist; gpu::calcHist(srcImg,hist)
使用imread載入圖像后,
再導入到GpuMat中:
用calcHist處理srcImg時候出現了內存異常。
后來發現是calcHist只能處理CV_8UC1像素類型的圖像,但是src的像素不是CV_8UC1。
再嘗試使用covertTo和setTo來轉換src的像素類型,但是沒用成功。
經過調試發現,src的通道是3個。
然后代碼修改成以下以后成功:
src = imread("**.jpg",CV_LOAD_IMAGE_GRAYSCALE); if(src.type != CV_8UC1) { src.covertTo(src,CV_8UC1); } GpuMat srcImg(src); GpuMat hist; gpu::calcHist(srcImg,hist)
在imread的時候,src存儲的就是一張單通道圖像。
再使用covertTo轉換src的像素類型。
參考:
http://blog.csdn.net/tcm_zhangpeng/article/details/39084103
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。