我想弄清楚如何在兩個圖像上分割帶有4個通道(r,g,b,a)的JPEG - 一個應該是帶有RGB信息的JPEG,另一個是隻有alpha通道的PNG。Xcode構建腳本來分離圖像通道?
1
A
回答
0
可以實現圖像處理這個使用OpenCV一個開放源碼庫:
// NOTE you SHOULD cvReleaseImage() for the return value when end of the code.
- (IplImage *)CreateIplImageFromUIImage:(UIImage *)image {
CGImageRef imageRef = image.CGImage;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
IplImage *iplimage = cvCreateImage(cvSize(image.size.width, image.size.height), IPL_DEPTH_8U, 4);
CGContextRef contextRef = CGBitmapContextCreate(iplimage->imageData, iplimage->width, iplimage->height,
iplimage->depth, iplimage->widthStep,
colorSpace, kCGImageAlphaPremultipliedLast|kCGBitmapByteOrderDefault);
CGContextDrawImage(contextRef, CGRectMake(0, 0, image.size.width, image.size.height), imageRef);
CGContextRelease(contextRef);
CGColorSpaceRelease(colorSpace);
IplImage *ret = cvCreateImage(cvGetSize(iplimage), IPL_DEPTH_8U, 3);
cvCvtColor(iplimage, ret, CV_RGBA2BGR);
cvReleaseImage(&iplimage);
return ret;
}
//detecting blobs and drawing countours arround it
- (void) splitImage : (UIImage *) image {
if(!image)
return;
IplImage *iplImageFromImage = [self CreateIplImageFromUIImage:image];
cvSetImageROI(iplImageFromImage, cvRect(0, 0, image.size.width, image.size.height));
//splitting image detecting blob and then mergin it back
cout <<"channels = "<<iplImageFromImage->nChannels<<"\n";
IplImage *hImage, *sImage, *vImage, *fImage;
cvSplit(iplImageFromImage, &hImage, &sImage, &vImage, &fImage);
CvMat tmp; CvMat* mat = cvGetMat(iplImageFromImage, &tmp, 0, 0);
CvMat *hImage_m = cvCreateMat(mat->rows, mat->cols, CV_8UC1),
*sImage_m = cvCreateMat(mat->rows, mat->cols, CV_8UC1),
*vImage_m = cvCreateMat(mat->rows, mat->cols, CV_8UC1);
cvSplit(mat, hImage_m, sImage_m, vImage_m, NULL);
}
+0
謝謝rptwsthi。但那不是我想要的。 –
+0
哦,毫無價值的努力:( – rptwsthi
1
你想要做的是下載ImageMagik包。它有大量的命令行程序,您可以在腳本中使用這些程序來執行圖像的「魔術」。
+0
謝謝。看起來這就是我真正需要的! –
0
你想要腳本嗎? Imagemagick封裝具有轉換的工具,它可以提取圖像通道:
convert rose: -channel R -separate separate_red.gif
convert rose: -channel G -separate separate_green.gif
convert rose: -channel B -separate separate_blue.gif
讀here約分離通道圖像。
Imagemagick在OSX上工作得很好。
相關問題
- 1. 的Xcode:在構建腳本
- 2. H5BP構建腳本圖像優化
- 3. 使用Xcode後構建腳本來創建ZIP壓縮文件
- 4. Xcode構建腳本來創建Icon.png和Default.png資產
- 5. 通過Ant構建腳本
- 6. 試圖用nodeJS構建腳本來構建LESS(less css)
- 7. 如何添加構建腳本Xcode 5?
- 8. 使用cuda從RGBA圖像中分離通道
- 9. 將拜耳圖像分離爲彩色通道C++
- 10. 使用OpenModelica腳本分離OMC和GCC構建
- 11. 管道腳本上傳構建(apk)hockeyApp
- 12. OpenGL的分離RGB通道
- 13. Xcode構建發佈腳本構建失敗
- 14. 離子2構建與背景圖像
- 15. Xcode構建腳本(構建階段 - >運行腳本)基於用戶名(用戶)遞增構建版本
- 16. Tensorflow圖像分類腳本
- 17. 通過groovy腳本創建多分支管道
- 18. 在Angular中分離腳本
- 19. 如何在構建器模式中將構造分離出來?
- 20. 通過腳本構建iphone項目
- 21. 從每個通道創建RGB圖像
- 22. groovy構建腳本來構建一個flex項目
- 23. Python構建腳本
- 24. Eclipse構建腳本
- 25. Maven-構建腳本
- 26. requireJs構建腳本
- 27. Ant構建腳本
- 28. 從圖像代碼中分離文本和圖像區域
- 29. 用戶腳本來處理圖像onload
- 30. 腳本來讀取圖像src
你到目前爲止嘗試過什麼? (另外,請將更多的精力放在您的問題上,並且只應用適當的標籤。) –
Emmm ..不知道要增加什麼問題。我有4個通道的JPG,並希望在構建階段將其分成2個文件。所以要避免在Photoshop中保存2個文件,而只是通過xcode腳本從jpgs剪切alpha通道。我將有大約100個具有顏色信息和alpha通道的相似文件(黑白)。我想減少應用程序的大小,以避免節省大量PNG的透明度。與在構建期間從psd創建png和@ 2x.png的腳本類似。 –
'JPEG'圖像不能包含alpha通道,所以你沒有(r,g,b,a)的'JPEG'。 –