示例#1
0
int main(int argc,char** argv){
	cv::Mat original = cv::imread(argv[1],1);
	long img_sharpness=sobel_sharpness(original);
	std::cout<<"image sharpness="<<img_sharpness<<std::endl;
	img_sharpness=sobel_sharpness(sharpenImage(original));
	std::cout<<"sharpened image sharpness="<<img_sharpness<<std::endl;
	/*original = cv::imread(argv[2],1);
	img_sharpness=sobel_sharpness(original);
	std::cout<<"image sharpness="<<img_sharpness<<std::endl;
	img_sharpness=sobel_sharpness(sharpenImage(original));
	std::cout<<"sharpened image sharpness="<<img_sharpness<<std::endl;*/
	
}
示例#2
0
//--------------------------------------------------------------
void testApp::update(){
#ifndef __APPLE__
#ifndef __NO_KINECT__
        kinect.update();
        if(kinect.isFrameNew()) {
                grayImage.setFromPixels(kinect.getDepthPixels(), kinect.width, kinect.height);
                colorImage.setFromPixels(kinect.getPixels(), kinect.width, kinect.height);
        }
		if(frameMerge) {
			frameMergeFilter();
			//ofLogNotice() << "Merging Frame";
		}
		if(filterOn) {
			grayImage.setFromPixels(filter->getFrame(grayImage), kinect.width, kinect.height);
		}
		if(sharpenOn)
			sharpenImage();
		if(invertOn)
			invertImage();
		if(contourOn)
			findContour();
#endif
#endif
}
int MapData::getIconIndex (char const* path)
{
  for (int i = 0; i < numImages; i++)
    if (!stricmp (images[i], path))
      return i;
  MPQAddArchive (warloader, map);
  BLPImage* src = MPQLoadImage (warloader, path);
  MPQRemoveArchive (warloader, map);
  if (src)
  {
    if (numImages >= maxImages)
    {
      maxImages += 16;
      imgname* temp = new imgname[maxImages];
      memset (temp, 0, sizeof (imgname) * maxImages);
      memcpy (temp, images, sizeof (imgname) * numImages);
      delete[] images;
      images = temp;
    }
    strcpy (images[numImages], path);

    ImgCompressor cmp (16, 16);
    for (int x = 0; x < src->width; x++)
      for (int y = 0; y < src->height; y++)
      {
        int i = (x * 16 / src->width) + (y * 16 / src->height) * 16;
        cmp.col[0][i] += src->data[x + y * src->width] & 0xFF;
        cmp.col[1][i] += (src->data[x + y * src->width] >> 8) & 0xFF;
        cmp.col[2][i] += (src->data[x + y * src->width] >> 16) & 0xFF;
        cmp.cnt[i]++;
      }
    for (int i = 0; i < 256; i++)
    {
      for (int j = 0; j < 3; j++)
      {
        cmp.col[j][i] = (cmp.col[j][i] * 7 / 6) / cmp.cnt[i];
        if (cmp.col[j][i] > 255) cmp.col[j][i] = 255;
      }
    }
    sharpenImage (cmp, 16, 0.16f);
    delete src;

    CDC dc;
    dc.Attach (GetDC (NULL));

    unsigned char* bm = new unsigned char[16 * 16 * 4];
    for (int i = 0; i < 256; i++)
    {
      bm[i * 4 + 0] = cmp.out[2][i];
      bm[i * 4 + 1] = cmp.out[1][i];
      bm[i * 4 + 2] = cmp.out[0][i];
      bm[i * 4 + 3] = 0;
    }

    CBitmap bmp;
    bmp.CreateCompatibleBitmap (&dc, 16, 16);
    BITMAPINFOHEADER bi;
    bi.biSize = sizeof bi;
    bi.biWidth = 16;
    bi.biHeight = -16;
    bi.biPlanes = 1;
    bi.biBitCount = 32;
    bi.biCompression = BI_RGB;
    bi.biSizeImage = 0;
    bi.biXPelsPerMeter = 1;
    bi.biYPelsPerMeter = 1;
    bi.biClrUsed = 0;
    bi.biClrImportant = 0;
    SetDIBits (dc.m_hDC, (HBITMAP) bmp.m_hObject, 0, 16, bm, (BITMAPINFO*) &bi, DIB_RGB_COLORS);
    iList.Add (&bmp, (CBitmap*) NULL);
    delete[] bm;
    return numImages++;
  }
  return 0;
}
示例#4
0
void SharpenFilter::filterImage()
{
    sharpenImage(m_radius, m_sigma);
}