91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 12.92MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-10
  • 語言: C/C++
  • 標簽: GDAL??

資源簡介

基于GDAL使用C++編寫的圖像裁剪程序,并內置了GDAL開發庫。

資源截圖

代碼片段和文件信息

/********************************************************************
?Author:?zhoushun
??Email:?shunzhou@foxmail.coms
???Date:?2016/03/22
???bri:
*/

#include?“assert.h“

#include?“../gdal/include/gdal.h“
#include?“../gdal/include/gdal_priv.h“

#pragma?comment(lib?“../gdal/gdal_i.lib“)
/******************************************************************************
函數名:
readImageGDAL
功能:
讀取圖像一塊區域
參數:
unsigned?char?**pImageData?-?指向圖像數據指針的指針,將由new操作符動態創建,需要在函數外部由調用者使用delete[]銷毀,否則內存泄露
int?x?int?y???????????????-?讀取區域的位置
int?widthint?height???????-?圖像寬度、高度,由于是引用,可以作為返回值。
nChannels??????????????????-?圖像通道,可選值為1或3。1代表灰度圖像,3代表RGB圖像-1表示按照圖像自身通道數目讀取。
const?char?*filePath???????-?圖像文件路徑名稱
說明:******************************************************************************/
bool?readImageGDAL(unsigned?char?**pImageData?int?x?int?y?int?width?int?height?
int?&nChannels?const?char?*filePath)
{
GDALAllRegister();
GDALDataset?*poDataset?=?NULL;
poDataset=(GDALDataset*)?GDALOpen(filePathGA_ReadOnly);
if(poDataset?==?NULL)
{
GDALClose(poDataset);
return?false;
}
int?w?=?poDataset->GetRasterXSize();
int?h?=?poDataset->GetRasterYSize();

GDALRasterBand*?pBand;
int?i?=?0;
int?nRastercount?=?poDataset->GetRasterCount();
if?(nRastercount?==?1)?//只有1個通道,則為灰度圖像
{
nChannels?=?1;
pBand?=?poDataset->GetRasterBand(1);?
*pImageData?=?new?unsigned?char[width?*?height];
pBand->RasterIO(GF_Read
xy //nXOffnYOff:從左上角坐標point(nXOffnYOff)處讀取圖像數據
widthheight //nXSizenXSize:要讀取的圖像數據尺寸,注意可以不是band的實際尺寸,這樣就是讀取roi區域數據
*pImageData //pData:讀取的數據即將存儲的目的地址。
widthheight //nBufXSizenBufYSize:目的地址處圖像的尺寸,如果與roi尺寸不一致,則縮放。
GDT_Byte //eBufType:讀取圖像后,將要存儲為的類型
0 //nPixelSpace:控制同一行相鄰像素間隔,0代表使用目的數據類型大小
0); //nLineSpace:控制相鄰行的行間隔,0代表使用[目的數據類型大小?*?nXsize]
GDALClose(poDataset);
return?true;
}
else?if?(?nRastercount?==?3?&&?(nChannels?==?3?||?nChannels? {
nChannels?=?3;
*pImageData?=?new?unsigned?char[nRastercount?*?width?*?height];
for?(i?=?1;?i?<=?nRastercount;?++?i)
{
//GDAL內band存儲順序為RGB,需要轉換為我們一般的BGR存儲,即低地址->高地址為:B?G?R
unsigned?char?*pImageOffset?=?*pImageData?+?i?-?1;
GDALRasterBand*?pBand?=?poDataset->GetRasterBand(nRastercount-i+1);

pBand->RasterIO(
GF_Read
xy
widthheight
pImageOffset
widthheight
GDT_Byte
3
0);
}
GDALClose(poDataset);
return?true;
}
else?if?(?nRastercount?==?3?&&?nChannels?==?1?)?//有3個通道,但是要求輸出灰度圖像
{
unsigned?char?**img?=?new?unsigned?char*[nRastercount];
for?(i?=?0;?i? {
img[i]?=?new?unsigned?char[width?*?height];
}
for?(i?=?1;?i?<=?nRastercount;?++?i)
{
//GDAL內band存儲順序為RGB,需要轉換為我們一般的BGR存儲,即低地址->高地址為:B?G?R
pBand?=?poDataset->GetRasterBand(nRastercount-i+1);?
pBand->RasterIO(GF_Read
xy
widthheight

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-03-22?22:54??CutImage\
?????目錄???????????0??2016-03-22?22:53??CutImage\bin\
?????文件??????379865??2016-01-06?10:38??CutImage\bin\1.jpg
?????文件??????197120??2016-03-22?22:53??CutImage\bin\CutImage.exe
?????文件???????72086??2016-03-22?22:53??CutImage\bin\CutImage.exp
?????文件?????1013880??2016-03-22?22:53??CutImage\bin\CutImage.ilk
?????文件??????119618??2016-03-22?22:53??CutImage\bin\CutImage.lib
?????文件?????1043456??2016-03-22?22:53??CutImage\bin\CutImage.pdb
?????文件?????9125376??2015-06-18?07:42??CutImage\bin\gdal110.dll
?????目錄???????????0??2016-03-22?22:22??CutImage\CutImage\
?????文件????????1245??2016-03-22?22:22??CutImage\CutImage.sln
?????文件????????9728??2016-03-22?22:54??CutImage\CutImage.suo
?????文件????????5698??2016-03-22?22:23??CutImage\CutImage\CutImage.vcxproj
?????文件?????????942??2016-03-22?22:17??CutImage\CutImage\CutImage.vcxproj.filters
?????文件?????????143??2016-03-22?22:01??CutImage\CutImage\CutImage.vcxproj.user
?????目錄???????????0??2016-03-22?22:22??CutImage\CutImage\Debug\
?????文件?????????544??2016-03-22?22:22??CutImage\CutImage\Debug\cl.command.1.tlog
?????文件???????14320??2016-03-22?22:22??CutImage\CutImage\Debug\CL.read.1.tlog
?????文件?????????312??2016-03-22?22:22??CutImage\CutImage\Debug\CL.write.1.tlog
?????文件?????????381??2016-03-22?22:22??CutImage\CutImage\Debug\CutImage.exe.intermediate.manifest
?????文件??????????55??2016-03-22?22:22??CutImage\CutImage\Debug\CutImage.lastbuildstate
?????文件???????26220??2016-03-22?22:22??CutImage\CutImage\Debug\CutImage.log
?????文件???????????0??2016-03-22?22:22??CutImage\CutImage\Debug\CutImage.unsuccessfulbuild
?????文件?????????713??2016-03-22?22:17??CutImage\CutImage\Debug\CutImage.vcxprojResolveAssemblyReference.cache
?????文件???????????0??2016-03-22?22:17??CutImage\CutImage\Debug\CutImage.write.1.tlog
?????文件???????????2??2016-03-22?22:22??CutImage\CutImage\Debug\link.command.1.tlog
?????文件???????????2??2016-03-22?22:22??CutImage\CutImage\Debug\link.read.1.tlog
?????文件???????????2??2016-03-22?22:22??CutImage\CutImage\Debug\link.write.1.tlog
?????文件??????603895??2016-03-22?22:22??CutImage\CutImage\Debug\main.obj
?????文件??????314368??2016-03-22?22:22??CutImage\CutImage\Debug\vc100.idb
?????文件??????307200??2016-03-22?22:22??CutImage\CutImage\Debug\vc100.pdb
............此處省略2340個文件信息

評論

共有 條評論